Подтвердить что ты не робот

Экспресс js статический относительный родительский каталог

В настоящее время я испытываю некоторые незначительные проблемы с обслуживанием статических файлов через expressJs.

Моя структура каталогов выглядит следующим образом:

  • общественности
    • CSS
    • Lib
  • ЦСИ
    • вид
    • дома
      • index.html
    • server.js

В моем файле index.html я префикс всех моих активов с помощью косой черты.

Моя статическая настройка следующая: app.use(express.static(path.resolve(__dirname + '../' + 'public')));

Но по какой-то причине мои статические файлы не получают.

Я думал, что это перекрестный вызов или что-то еще... В настоящее время я использую cloud9 IDE, возможно, это связано с этим каким-то образом?

4b9b3361

Ответ 1

__dirname не имеет завершающей косой черты, поэтому __dirname + '../' приводит к DIRNAME../ (что недопустимо).

Вместо этого используйте:

__dirname + '/../public'
             ^ extra slash

Ответ 2

Вы должны использовать path.join вместо компонентов конкатенирования вручную. Он использует path.normalize, который разрешает . и .., обрабатывает несколько или завершающих косых черт и использует соответствующий разделитель файлов для вашей платформы (см. path.sep).

Например,

var path = require('path');

var express = require('express');

var app = express();

app.use(express.static(path.join(__dirname, '../public')));