我在Node.js和Express中编写了一个webapp。我的子页面(例如/reflection/id
)找不到我的静态文件夹。它不是查找/stylesheets
,/javascripts
等(会被重定向到/public/stylesheets
等),而是在子页面内搜索,即/reflection/stylesheets
。
您可以转到Heroku page(也在下方链接)并查看开发者控制台,您会发现它正在搜索错误的路径。
我怀疑问题存在于我的app.js
(link)中,可能在第24行附近:
app.use(express.static(path.join(__dirname, 'public')));
知道发生了什么事吗?我没有正确地声明静态路径吗?任何见解都表示赞赏。
Git上的项目:https://github.com/gredelston/every6
Heroku部署,相关页面:http://every6.herokuapp.com/reflection/test
答案 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