Ответ 1
__dirname
не имеет завершающей косой черты, поэтому __dirname + '../'
приводит к DIRNAME../
(что недопустимо).
Вместо этого используйте:
__dirname + '/../public'
^ extra slash
В настоящее время я испытываю некоторые незначительные проблемы с обслуживанием статических файлов через expressJs.
Моя структура каталогов выглядит следующим образом:
В моем файле index.html
я префикс всех моих активов с помощью косой черты.
Моя статическая настройка следующая:
app.use(express.static(path.resolve(__dirname + '../' + 'public')));
Но по какой-то причине мои статические файлы не получают.
Я думал, что это перекрестный вызов или что-то еще... В настоящее время я использую cloud9 IDE, возможно, это связано с этим каким-то образом?
__dirname
не имеет завершающей косой черты, поэтому __dirname + '../'
приводит к DIRNAME../
(что недопустимо).
Вместо этого используйте:
__dirname + '/../public'
^ extra slash
Вы должны использовать 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')));