ember.js で Router の location プロパティを指定する際に問題があります。App.Router の場所を「history」に設定しない場合に機能する次のコードがあります。設定すると、ページを読み込もうとすると、コンソールに次のエラーが表示されます: Uncaught Error: No route matching the URL '/test/' - /test/ は /var/www/ のディレクトリです。コードは次のとおりです。
app.js
window.App = Em.Application.create({
title: 'Title'
});
App.ApplicationView = Ember.View.extend({
templateName: 'application'
})
App.ApplicationController = Ember.Controller.extend({
name: 'test'
})
App.IndexAboutView = Ember.View.extend({
templateName: 'index/about'
})
App.IndexAboutController = Ember.Controller.extend({
str: 'my string'
})
App.IndexBioView = Ember.View.extend({
templateName: 'index/bio'
})
App.IndexBioController = Ember.Controller.extend({
str: 'bio text'
})
App.Router.reopen({
location: 'history'
});
App.Router.map(function(match){
this.resource('index', { path: '/' }, function() {
this.route('about');
this.route('bio');
})
})
そして、私のインデックスファイルは次のようになります:
<script type="text/x-handlebars" data-template-name="application">
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar collapsed" data-toggle="collapse" data-target=".navbar-responsive-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<div class="brand">
{{#linkTo "index"}}{{unbound App.title}}{{/linkTo}}
</div>
<div class="nav-collapse navbar-responsive-collapse collapse">
<ul class="nav">
<li><a href="#">a</a></li>
<li><a href="#">b</a></li>
<li><a href="#">c</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="container">
{{outlet}}
</div>
</script>
<script type="text/x-handlebars" data-template-name="index/about">
This is the str from about : {{str}}
</script>
<script type="text/x-handlebars" data-template-name="index/bio">
This is the str from bio : {{str}}
</script>