尝试提供/ css和/ js文件时,express.static()404错误

时间:2011-12-16 23:47:47

标签: node.js express

我目前正在使用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文件的路径?

非常感谢任何想法/帮助。

谢谢!

1 个答案:

答案 0 :(得分:0)

经过进一步调查,这是我在nginx配置中使用proxy_pass的问题。初始GET请求正在正确转发到我的Express应用程序,但后续调用css或js文件未正确路由。这不是Express框架的问题。谢谢你的期待。