在fly ember-cli上更改baseUrl

时间:2015-03-10 10:39:07

标签: javascript ember.js ember-cli

我想从另一个域执行一些ember路由: 例如:

m.site.com/foo
site.com/path/to/ember/bar

所以我应该根据执行的域脚本来改变根路径

我尝试将rootURL添加到Ember.Router

var Router = Ember.Router.extend({
  location: 'hash'
    rootURL: '/path/to/ember/'
});

并在ember-cli中更改app-config-from-meta.js

    try {
      var metaName = prefix + '/config/environment';
      var rawConfig = Ember['default'].$('meta[name="' + metaName + '"]').attr('content');
      var config = JSON.parse(unescape(rawConfig));

   if (window.location.href.indexOf('m.') !== -1) {
            config.baseURL = '/path/to/ember/';
            config.locationType = 'hash';
      }
    console.log(config);
      return { 'default': config };
    }
    catch(err) {
      throw new Error('Could not read config from meta tag with name "' + metaName + '".');
    } 

但它没有帮助。

更新

问题出现在构建期间插入的'<base href="' + baseURL + '">'标记中。所以,理解我需要创建像index.htmlindex_bar.html这样的索引文件。更简单的方法是什么?

更新: 我的意识: 加入broccoli-config-replace行动process

if (filePath.indexOf('index_bar.html') > 0){
        var tmpConfig = config;
        tmpConfig.baseURL = config._chatBaseURL;
        tmpConfig.locationType = config._chatLocationType;
        this.processFile(tmpConfig, filePath, destPath);
    } else {
        this.processFile(config, filePath, destPath);
    }

index.html适用于auto路由和基础/

index_bar.html适用于hash路由和基础/path/to/ember/

有更好的解决方案吗?感谢

0 个答案:

没有答案