我目前正在使用Node.js开发一个网站。
我只是设置了我的404页面,当我转到mywebsite.com/404
或其他不存在的页面时,它可以正常工作,但如果我尝试访问类似mywebsite.com/foo/bar
的内容,它也不会如果存在,则CSS
和JS
等资源不会加载。在服务器上,我正在使用:
app.use('/assets', express.static(__dirname + '/public'));
而且,在页面上:
<link href="/assets/css/bootstrap.min.css" rel="stylesheet">
我知道在HTML上的资产前添加../
会有效,但这并不理想。有什么帮助吗?
我的文件夹结构如下:
Project Folder
|-App.js
|-views
|-404.ejs
|-home.ejs
|-public
|-CSS
|-Bootstrap.min.css
|-js
|-img
|-font
答案 0 :(得分:0)
在404页面(或每个页面!)上使用base元素,它将始终使用您指定的基本路径请求您的资源。
例如,添加<base href="http://example.com" /
&gt;在您的</head>
代码请求http://example.com
作为路径的每个资产之前,在您的情况下,而不是/foo/bar/assets/css/bootstrap.min.css
,它会请求/assets/css/bootstrap.min.css
。