我想从另一个域执行一些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.html
和index_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/
有更好的解决方案吗?感谢