我正在使用 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/