快速静态中间件和子目录的问题

时间:2017-04-11 13:35:24

标签: node.js express

我将此文件夹作为我的网站结构

-views
-index
-post
-public
-CSS
-js
-images
-app.js

但是帖子链接可以是:

mywebsite.com/posts/a-link-example

所以,当我使用像这样的快速静态中间件时:

app.use(express.static(__dirname + '/public'));

它仅适用于没有“子目录”的页面,如

example.com/home
example.com/contact

但不是

example.com/posts/post-name

我当然可以使用:

app.use('/posts, express.static(__dirname + '/public'));

但有更好的方法吗?

2 个答案:

答案 0 :(得分:2)

不要使用相对路径指向静态资源(如脚本和样式表),使用绝对路径:

<link rel="stylesheet" href="/css/style.css">

答案 1 :(得分:1)

您可以从以下位置更改静态资产链接:

<link rel="stylesheet" href="./css/style.css">

为:

<link rel="stylesheet" href="/css/style.css">