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的文档