2014-01-14 107 views
0

我正在開發一個使用從金字塔服務的ember.js的SPA(單頁應用程序)。問題是路由不能正常工作。使用金字塔和ember.js路由SPA

在金字塔,我有以下途徑定義:

# Route to index.html, i.e. the SPA 
config.add_route('index', '/') 
# Route to css & js resources 
config.add_static_view('', 'myapp:static') 

而且index的觀點是:

@view_config(route_name='index') 
def index_view(request): 
    with open('myapp/templates/index.html', 'rt', encoding='utf-8') as fh: 
     html = fh.read() 
    return Response(html, content_type='text/html') 

這裏是我的index.html

<!DOCTYPE html> 
<html> 
    <head> 
    <title>Test</title> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 

    <link href="libs/bootstrap/css/bootstrap.min.css" rel="stylesheet"> 
    </head> 
    <body> 
    <h1>Hello, world!</h1> 
    <script type="text/x-handlebars" data-template-name="wfw"> 
     <section id="wfw"> 
     <p>here is a page</p> 
     </section> 
    </script> 

    <script src="js/application.js"></script> 
    <script src="js/router.js"></script> 

    <script src="https://code.jquery.com/jquery.js"></script> 
    <script src="http://builds.emberjs.com/release/ember.js"></script> 
    <script src="http://builds.handlebarsjs.com.s3.amazonaws.com/handlebars-v1.3.0.js"></script> 
    <script src="https://raw.github.com/less/less.js/master/dist/less-1.6.0.min.js"></script> 
    <script src="libs/bootstrap/js/bootstrap.min.js"></script> 
    </body> 
</html> 

js/application.js

window.Wfw = Ember.Application.create(); 

js/router.js

Wfw.Router.map(function() { 
    this.resource('wfw', { path: '/t' }); 
}); 

當我去localhost:6543/我得到的 「Hello,world!」 的,但我不認爲 「這裏是一個網頁」。如果我將path中的js/router.js更改爲'/test'並轉到localhost:6543/test,我得到了404。我在做什麼錯了?我是否需要以某種方式禁用金字塔路由的一部分,或者我在做錯誤的燼?

回答

1

有幾件事情:

  1. 我認爲你需要移動上述應用程序的特定標記的Ember.js script標籤。

  2. 你配置的路徑是/t所以我不認爲它會把它拿起/test

  3. 默認情況下,燼不使用HTML5歷史API,讓您的網址將需要像:localhost:6543/#/t

+0

感謝。 '/ t'在這個問題上只是一個錯字,但它是缺少問題的'#'。當我補充說它完美的工作! – aquavitae