Javascript 如果使用2级URL,Express会将URL的第一部分添加到注入中吗?
我正在使用Node.js+Express 当您有1级URL时,如:Javascript 如果使用2级URL,Express会将URL的第一部分添加到注入中吗?,javascript,html,node.js,express,Javascript,Html,Node.js,Express,我正在使用Node.js+Express 当您有1级URL时,如: /estonia /estonia/tallinn 所有脚本和样式都已正确加载,但如果您有两级URL,如: /estonia /estonia/tallinn 脚本和样式注入失败,因为它将/爱沙尼亚添加到路径: 之前: 之后: 这是我的routes.js文件: app.get('*', function(req, res) { var url = req.url.slice(1); var urlPara
/estonia
/estonia/tallinn
所有脚本和样式都已正确加载,但如果您有两级URL,如:
/estonia
/estonia/tallinn
脚本和样式注入失败,因为它将/爱沙尼亚添加到路径:
之前:
之后:
这是我的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');
}
});
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));
这是我的express.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');
}
});
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));
我如何解决这个问题?将
添加到模板的
部分。请添加ejs页面源代码我相信如果您删除整个应用程序。get('*',fn)
在您的routes.js
文件中,它应该开始正常工作,因为您已经使用app.use(express.static(config.ROOT_PATH+“/”+config.PUBLIC_PATH))设置了静态目录如果URL是/爱沙尼亚/tallin
,express应该如何理解它必须加载index.html;只有当您有/
或直接路径js/config.js