通过request传递参数之后,我的静态资源路径变了,怎么办?
 发布于 10 年前  作者 kaerhasnoballs  3995 次预览  最后一次回复是 10 年前  来自 问答 

原本一个样式表正常加载的路径是http://localhost:3000/stylesheet/xxx.css但是由于我做了一个通过req.params.id(/article/:id)的操作,结果,样式的加载路径变成了http://localhost:3000/article/stylesheet/xxx.css

这个怎么解决,才开始学node,不是很清楚

7 回复
kaerhasnoballs

补充一下,是使用express设置了静态文件目录的 自豪地采用 CNodeJS ionic

alsotang

你的 js 和 css 的 src,是不是写成相对路径了?要写绝对路径

klesh

引用静态时用绝对根路径,如: /stylesheet/xxx.css

kaerhasnoballs

@alsotang 怎么写绝对路径啊? 自豪地采用 CNodeJS ionic

klesh

全路径: http://localhost:3000/stylesheet/xxx.css 绝对路径: /stylesheet/xxx.css 以/作为开头,相当于全路径去掉主机和端口部分 相对路径: stylesheet/xxx.css …/stylesheet/xxx.css ./stylesheet/xxx.css 相对于当前文件或者工作目录为参照的路径写法。 相对路径最后会被浏览器换算成绝对路径发给服务器以请求资源,如果你当前的文件位于 /articles/123.html ,在这个文件中的相对路径则会以 /articles 作为当前目录,去计算相对路径的位置,如 stylesheet/css 换成绝对路径就是 /articles/stylesheet/xxx.css , 而 …/stylesheet/xxx.css 会被换算成 /stylesheet/xxx.css