Node.js:子页面找不到公共静态文件夹

我在Node.js和Express中编写一个webapp。 我的子页面(例如/reflection/id )找不到我的静态文件夹。 而不是寻找/stylesheets/javascripts等(这将被redirect到/public/stylesheets等),它正在子页面,即/reflection/stylesheets

你可以到Heroku页面 (也链接到下面),看看开发者控制台,你会发现它正在search错误的path。

我怀疑问题存在于我的app.js ( 链接 ),可能在第24行左右:

 app.use(express.static(path.join(__dirname, 'public'))); 

任何想法发生了什么? 我没有正确地声明静态path? 任何见解都表示赞赏。

Git项目: https : //github.com/gredelston/every6

Heroku部署,相关页面: http : //every6.herokuapp.com/reflection/test

您需要使用绝对url

 <link rel="stylesheet" type="text/css" href="/stylesheets/main.css"> 

代替

 <link rel="stylesheet" type="text/css" href="stylesheets/main.css"> 

否则,浏览器会尝试加载相对于当前正在查看的URL的stylesheets

试试app.use(express.static('public')) ,express会自动在你的根目录下find'public'文件夹。 这里是express.static的文档