如果你使用2级URL, Express会将URL的第一部分添加到注入中

Express adds first part of URL to injections if you use 2 level URLs?

本文关键字:URL 一部分 第一部 添加 注入 Express 2级 如果 会将      更新时间:2023-09-26

我正在使用Node.js + Express。

当你有1级URL,如:

/estonia

所有的脚本和样式都是正确加载的,但如果你有一个2级URL,如:

/estonia/tallinn

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

: http://localhost: 5050/js/config.js
后:http://localhost: 5050/爱沙尼亚/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>部分