javascript - 如果您使用 2 级 URL,Express 会将 URL 的第一部分添加到注入(inject)中?

标签 javascript html node.js express

我正在使用 Node.js + Express。

当您有 1 级 URL 时:

/estonia

所有脚本和样式都已正确加载,但如果您有一个 2 级 URL,例如:

/estonia/tallinn

脚本和样式注入(inject)失败,因为它将 /estonia 添加到路径中:

之前:http://localhost:5050/js/config.js
之后:http://localhost:5050/estonia/js/config.js

这是我的 routes.js 文件:

app.get('*', function(req, res) {
    var url = req.url.slice(1);
    var urlParamsArray = url.split("/");
    if ( countries[urlParamsArray[0]] && (urlParamsArray.length===1 || cities[urlParamsArray[1]]) ) {
        res.sendFile(config.ROOT_PATH +'/'+ config.PUBLIC_PATH+'/index.html');
    } else {
        res.status(404).sendFile(config.ROOT_PATH + '/'+ config.PUBLIC_PATH+'/404.html');
    }
});

这是我的 express.js 文件:

app.set('view engine', 'ejs');
app.use(function (req, res, next) {
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
    res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization');
    next();
});

app.use(bodyParser());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
    extended: true
}));
app.use(session({secret:config.EXPRESS_SESSION_SECRET}));
app.use(favicon(config.ROOT_PATH+'/public/favicon.ico'));
app.use(express.static(config.ROOT_PATH+"/"+config.PUBLIC_PATH));

我该如何解决?

最佳答案

添加<base href="/"><head>模板的一部分。

关于javascript - 如果您使用 2 级 URL,Express 会将 URL 的第一部分添加到注入(inject)中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30258074/

相关文章:

javascript promise 池化连接并执行查询

javascript - .Net 响应式 Gridview

Javascript HTML5 数组搜索并从 HTML5 文本框返回(如果在数组中)

node.js - 调用在 Controller 中同步工作的函数 - Node

javascript - 如何在 JavaScript 函数内的 html 中插入条件语句?

html - angular ng-repeat隐藏了div的样式

node.js - 按计划在 AWS EC2 中运行 Node.js 函数

javascript - 更改 Backbone.model 中的属性

javascript - 定义一个包含变量然后立即覆盖它

javascript - 我想在构建器和该构建器中的 x 轴和 y 轴上制作一个可滚动的 div