所以我设置了Node / Express服务器,我们正在从子目录转换到子域进行本地化,例如:
es.example.com // old way
www.example.com/es // new way
出于各种原因这样做,但主要是为了便于在国际化内容中保留JWT登录状态。
我遇到了动态生成的链接问题 - 如何确保它们会保留子目录?
例如,如果我将用户从index.html链接到/user-profile/1000
,我该如何维护/es/user-profile/1000
?有没有办法有相对路径到其他相对路径?如果这甚至有意义吗?
答案 0 :(得分:0)
您可以使用重定向到原始路径的中间件解决方案。这是一个基本的例子
var languages = ['en', 'es'], _ = require('lodash');
app.use("/:lang/*", function(req, res, next) {
console.log(req.params, req.path);
var found = _.find(languages, function(v) {
return v === req.params.lang;
});
if (!!found) {
res.redirect('/' + req.params[0]);
} else {
next();
}
});
这将检查所有有效语言,如果识别出一种语言,它将从路径中删除语言并重定向到原始路径减去语言。否则它将继续提供的路径。