2014-03-30 61 views
0

我想從使用AngularJS ngRoute模塊切換到ui-router模塊框架。我的應用程序是使用$locationProvider.html5Mode並防止深層鏈接從給予404我已經安裝了connect-modrewrite節點模塊(來自https://www.npmjs.org/package/connect-modrewrite),並將其添加到由AngularJS約曼發生器提供的咕嚕文件,像這樣:

// Yeoman's Gruntfile.js 

    // placed outside the module.exports function. 
    var modRewrite = require('connect-modrewrite'); 

    ... 

    // modify the server config and add our modRewrite middleware. 
    livereload: { 
    options: { 
     middleware: function (connect) { 
     return [ 
      modRewrite([ 
      '!\\.html|\\.js|\\.css|\\.png$ /index.html [L]' 
      ]), 
      lrSnippet, 
      mountFolder(connect, '.tmp'), 
      mountFolder(connect, yeomanConfig.app) 
     ]; 
     } 
    } 
    } 

這是偉大的,但我現在已經切換到使用UI路由器模塊框架應我深層鏈接(例如)http://myapp.com:9000/products我得到的迴應:

Cannot GET /products 

顯然,當我去到家庭/默認頁面,點擊一個鏈接到http://myapp.com:9000/products一切都很好,花花公子。有沒有人修改過他們的grunt文件,以便他們可以在AngularJS Yeoman生成器中使用html5mode和ui-router?提前致謝。

回答

0

哇!我的壞...我將livereload包含在錯誤的Grunt任務中!問題解決了...

0

我從來沒有用過connect-modrewrite,我總是用nginx。偶爾我需要爲我使用apache以下工作。

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.html [L] 
相關問題