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

时间:2015-05-25 20:16:45

标签: javascript node.js express

我在Node.js和Express中编写了一个webapp。我的子页面(例如/reflection/id)找不到我的静态文件夹。它不是查找/stylesheets/javascripts等(会被重定向到/public/stylesheets等),而是在子页面内搜索,即/reflection/stylesheets

您可以转到Heroku page(也在下方链接)并查看开发者控制台,您会发现它正在搜索错误的路径。

我怀疑问题存在于我的app.jslink)中,可能在第24行附近:

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

知道发生了什么事吗?我没有正确地声明静态路径吗?任何见解都表示赞赏。

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

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

2 个答案:

答案 0 :(得分:7)

您需要使用绝对网址

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

而不是

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

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

答案 1 :(得分:0)

尝试app.use(express.static('public')),express会自动在根目录中找到'public'文件夹。以下是express.static

的文档