Backbone.js URL重写-主干中的路由

Backbone.js URL重写-主干中的路由,backbone.js,Backbone.js,我有一个www.example.com域,我需要它使其URL友好。该域需要使用多语言,如下所示: http://{language}.example.com/restufullurls 在主干网/Marrionette中,仅使用路由是如何实现的?首先在某个地方创建一个配置文件: var config = { lang: 'en', domain: 'example.com' }; 然后创建一个基础模型,该模型将重写所有模型的url。这将通过从配置文件中附加正确的URL来重写您在模

我有一个www.example.com域,我需要它使其URL友好。该域需要使用多语言,如下所示:

http://{language}.example.com/restufullurls

在主干网/Marrionette中,仅使用路由是如何实现的?

首先在某个地方创建一个配置文件:

var config = {
   lang: 'en',
   domain: 'example.com'
};
然后创建一个基础模型,该模型将重写所有模型的url。这将通过从配置文件中附加正确的URL来重写您在模型中指定的URL:

var BaseModel = Backbone.Model.extend({
   initialize: function(){
      this.url = 'http://' + config.lang + '.' + config.domain + '/' + this.url;
   }
});
然后,每当你需要一个新的模型,你可以扩展基础

var SomeModel = BaseModel.extend({
   url: 'some/rest/url'
});
如果您需要切换语言,请执行以下操作

config.lang = 'new-language';
如果您希望使用与从服务器提供的文件相同的URL,请执行以下操作:

var BaseModel = Backbone.Model.extend({
   initialize: function(){
      this.url = window.location.origin + '/' + this.url;
   }
});

我不确定这是否可能。看起来您需要使用require js i18n plugin来加载语言集,然后init applicationBackbone不关心您的子域,默认使用哈希进行路由。只需解析
位置
并设置适当的语言,就不需要更改路由器中的任何内容。您是否愿意提供一个小示例,您如何设想这样做?我已经标记了答案。我将尝试一下,它看起来是一个可靠的方法。非常感谢。我将在这里提供我的更新,以及我采取的步骤。