Ember无法正确配置路由

时间:2013-07-26 15:06:06

标签: javascript ember.js url-routing

我在添加简单路由时遇到问题,我不知道如何调试它。

我的路线指定如下

Videos.Router.map(function({
this.resource('videos', {path:'/');
this.route('forms');
})

Videos.FormsRoute = Ember.Route.extend({
renderTemplate: function({
this.render({controller: 'forms'});
}
})

我还有一个表单模板如下:

<script type="text/x-handlebars" data-template-name="forms">

但是当我导航到url / forms时,我收到了找不到页面的错误。

我可以开始寻求解决这个问题的想法吗?

1 个答案:

答案 0 :(得分:2)

要使用/forms等非哈希网址,您需要配置Ember的位置以使用html5位置。

App.Router.reopen({
  location: 'history'
});

您还需要配置服务器以呈现访问/forms时呈现的相同index.html。这将根据您的服务器而有所不同。

对于apache,您需要mod_rewrite规则。对于类似rails的东西,您需要添加catch所有路径以使用HomeController的索引页面。在您的routes.rb,

结尾处有这样的东西
root :to 'home#index'
match "/*path" => 'home#index'

这告诉服务器任何与先前路由不匹配的内容都应使用HomeController.index方法或呈现应用程序html的特定控制器进行渲染。