我目前正在使用Express框架开展项目。我有一个目录“/ static”,我想从中提供静态js和css文件。
项目目录结构如下:
/
visits.js
/static
/css
style.css
/js
jquery.flot.js
/views
在应用程序配置中,我正在使用以下内容设置静态文件服务器:
app.configure(function(){
app.use(express.logger());
app.use(express.static(__dirname + '/static'));
app.set('views', __dirname + '/views');
app.set('view options', { layout : true });
app.set('view engine', 'jade');
});
当我在本地计算机上运行应用程序时,一切都很顺利。我的网络控制台显示:
GET http://myserver.com/ [HTTP/1.1 200 OK 13ms]
GET http://myserver.com/css/style.css [HTTP/1.1 200 OK 3ms]
GET http://myserver.com/js/jquery.flot.js [HTTP/1.1 200 OK 4ms]
但是,当我将同一个应用程序推送到我的测试服务器时,找不到静态文件(404错误):
GET http://myserver.com/visits/ [HTTP/1.1 200 OK 195ms]
GET http://myserver.com/css/style.css [HTTP/1.1 404 Not Found 95ms]
GET http://myserver.com/js/jquery.flot.js [HTTP/1.1 404 Not Found 93ms]
我能想到的唯一区别是在我的本地机器上,我只需访问该应用程序:
127.0.0.1:4000/
但是在测试服务器上,我让应用程序位于nginx服务器后面。我使用proxy_pass将请求转发到:
myserver.com/visits/
我想知道转发是否影响静态文件服务器用来查找css和js文件的路径?
非常感谢任何想法/帮助。
谢谢!
答案 0 :(得分:0)
经过进一步调查,这是我在nginx配置中使用proxy_pass的问题。初始GET请求正在正确转发到我的Express应用程序,但后续调用css或js文件未正确路由。这不是Express框架的问题。谢谢你的期待。