我有一个特殊的用例,我想在Ember中使用URL哈希进行路由,并且我希望URL的路径部分也有点动态。
例如:
localhost:4200/#/properties/edit
与此完全相同:
localhost:4200/about/#/properties/edit
或者这个:
localhost:4200/products/widgets/model-5000/#/properties/edit
如果在上面这些不同的示例网址之间导航会产生整页刷新,那将是100%可接受的,尽管URL中的任何哈希更改都会将其保留在“单页”上。
我希望所有这些URL都指向app/index.html
文件,而Ember CLI则指向“忽略”路径,但我无法弄清楚如何配置Ember CLI以便在服务时执行此操作应用程序。例如,上面的/about
方案给出了错误Cannot GET /about
。
使用普通的Ember CLI是否可以实现这一点,或者我需要转向ember-cli-rails
这样的东西才能在开发中获得更灵活的路由?我认为配置它在生产中正常工作会相对简单,但我也需要一些适用于开发的东西。
答案 0 :(得分:0)
是的,您可以使用通配符:http://emberjs.com/guides/routing/defining-your-routes/#toc_wildcard-globbing-routes
从'ember'导入Ember; 从'./config/environment'导入配置;
var Router = Ember.Router.extend({ location:config.locationType });
Router.map(function() {
this.resource('index', { path: "/*wildcard" }, function() {
this.route("properties", function() {
this.route("edit");
});
});
});
export default Router;
答案 1 :(得分:0)
解决方案是创建一个Ember CLI插件:ember-cli-hash-anywhere。
安装完成后,Web服务器会忽略URL的路径部分,并且每次都会提供index.html
。