Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果使用2级URL,Express会将URL的第一部分添加到注入中吗?_Javascript_Html_Node.js_Express - Fatal编程技术网

Javascript 如果使用2级URL,Express会将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

我正在使用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 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))设置了静态目录/爱沙尼亚/tallin
,express应该如何理解它必须加载index.html;只有当您有
/
或直接路径
js/config.js