通过request传递参数之后,我的静态资源路径变了,怎么办?
发布于 9 年前 作者 kaerhasnoballs 3674 次浏览 最后一次编辑是 8 年前 来自 问答

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

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

7 回复

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

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

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

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

全路径: 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

@klesh 了解了 自豪地采用 CNodeJS ionic

@klesh 谢谢 自豪地采用 CNodeJS ionic

回到顶部