3
当我从我的服务器ip:port浏览网站时,expressjs应用程序的静态文件完美工作,但是当应用程序从nginx提供服务时,静态文件会提供404。这是我的nginx的conf:代理nginx Express - 404静态文件
upstream project {
server localhost:6546;
}
server {
listen 80;
server_name example.com;
access_log /var/log/nginx/example.com_access.log;
error_log /var/log/nginx/example.com_error.log;
location/{
proxy_pass http://project/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
location ~* \.(css|js|gif|jpe?g|png)$ {
expires 168h;
}
这里是我expressjs代码为静态:
app.enable('trust proxy');
app.use(favicon(__dirname + '/public/favicon.ico'));
app.use(express.static(__dirname + '/public'));
app.set('view engine', 'ejs');
if (app.get('env') === 'production') {
app.set('view cache', true);
}
你能解释为什么我不应该使用它? –
当然,简而言之,它将使用更多来自Node的资源,而不仅仅是来自Nginx的资源,所以在制作时考虑......这样更好地解决这个问题......你不觉得吗? – edsadr
我想你是对的。无论如何,也许你可以帮助我:)我使用你的位置正则表达式,仍然获得静态文件404。我是否也必须在我的app.js中删除express.static模块?我将root设置为/ var/www/html/test/public,我的css文件位于/ stylesheets下。 谢谢! –