CNode

nodejs的静态资源路径不对如何解决

Ssannychan发布于12 年前最后回复11 年前3 回复26541 浏览0 收藏

我要访问页面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)

S
sannychan#1·12 年前

很奇怪,改了一下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,但页面显示正常了。不懂。。。

M
MiguelValentine#2·12 年前
引用 sannychan很奇怪,改了一下css和js引入路径如下,href后面加了“/” 虽然后台打出的requesturl还是 ,但页面显示正常了。不懂。。。

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

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

参与回复
登录后即可参与回复。登录