nodejs的静态资源路径不对如何解决
发布于 10 年前 作者 sannychan 25188 次浏览 最后一次编辑是 8 年前

我要访问页面url为:http://localhost:18080/add/newnet

但因为我没有登陆,会跳转到http://localhost:18080/login

login.ejs如下:

<link rel="stylesheet" href="bootstrap-3.2.0/css/bootstrap.min.css">
<link rel="stylesheet" href="stylesheets/style.css">

然后就会发现,request出来的url是:/add/bootstrap-3.2.0/css/bootstrap.min.css,导致我加载不了相应的css和js文件。

我想在页面加入<base url="http://localhost:18080">类似的标签 但怎么用experess在页面获取类似http://localhost:18080路径吗?

因为要部署在其他环境,写死base肯定不行,需要动态获取。

3 回复

很奇怪,改了一下css和js引入路径如下,href后面加了“/”

<link rel="stylesheet" href="/bootstrap-3.2.0/css/bootstrap.min.css">
<link rel="stylesheet" href="/stylesheets/style.css">

虽然后台打出的requesturl还是/add/bootstrap-3.2.0/js/bootstrap.min.js,但页面显示正常了。不懂。。。

@sannychan 如果是EXPRESS的话,问题在APP.JS里 app.use(express.static(path.join(__dirname, ‘/add’)));

如果不是的话 你的静态文件路由表肯定也做过类似配置。 一般来说href后面加了“/” 是正确做法。

@sannychan 我试了试你的方法确实好了,但是也不知道什么原因,哎

回到顶部