NodeJS не будет обслуживать статические файлы, даже при использовании express.static - PullRequest
7 голосов
/ 10 марта 2012

У меня есть что-то вроде следующего:

var request = require('request'),
    express = require('express');

var app = express.createServer();

var port = process.env.PORT || 8080;

app.configure(function(){
    app.set("view options", { layout: false, pretty: true });
    app.use(express.favicon());
    app.use("/public", express.static(__dirname + '/public'));
    }
);

app.listen(port);

// Routes
app.get('/', function(req, resp){
    resp.render('index.jade', {pageTitle: 'Some title'});
});

Тем не менее, когда я, например, захожу на /public/myfile.css, я все равно получаю:

Не могуGET /public/myfile.css Мои шаблоны index.jade не могут вызывать файлы либо

Почему это так?

Ответы [ 3 ]

14 голосов
/ 10 марта 2012

Я не думаю, что указание пути, подобного этому, поддерживается:

app.use("/public", express.static(__dirname + '/public'));

Попробуйте это и найдите ваши публичные файлы в корне:

app.use(express.static(__dirname + '/public'));

Итак /public/myfile.css становится /myfile.css.

1 голос
/ 06 апреля 2014

Важно также, где позиция оператора app.use(express.static(__dirname + '/public')) ...

У меня была проблема, когда она не работала, когда я случайно поместил это в файл ./middle-conf.js, который позже был импортирован как var configure = require('./middle-conf), а затем приложение Express было передано в configure(app).

Таким образом, порядок обработки промежуточного программного обеспечения работал неправильно.

0 голосов
/ 26 ноября 2016

это прекрасно работает ...

app.use("/public", express.static(__dirname + '/public'));

и на ваших html страницах обращайтесь к нему вот так ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...