2013-08-19 70 views
5

我使用Symfony的角度前端。當我聲明我的$routeProvider我必須包含我的/app_dev.php/因爲我將html 5模式設置爲true:$locationProvider.html5Mode(true);Symfony2使用Angular HTML5路線的資產

$routeProvider.when('/app_dev.php/admin', 
        {templateUrl: 'index.html', controller: AdminCtrl}) 
       .when('/app_dev.php/admin/schedule/', 
        {templateUrl: 'schedule.html', controller: ScheduleCtrl}) 
       .otherwise('/app_dev.php/admin'); 
$locationProvider.html5Mode(true); 

VS

$routeProvider.when('/admin', 
        {templateUrl: 'index.html', controller: AdminCtrl}) 
       .when('/admin/schedule/', 
        {templateUrl: 'schedule.html', controller: ScheduleCtrl}) 
       .otherwise('/admin'); 
$locationProvider.html5Mode(true); 

問題是我必須記得改變那些路線回來時,我想使用的生產環境。

我有當我做了轉儲來檢測我做了dev VS prod dump或做我只是痛苦地記得更改目標envirnment的路徑與assetic或許處理這個好辦法?

謝謝

回答

6

嘗試使用FOSJsRoutingBundle。此捆綁包允許您在JavaScript代碼中公開您的路由。這意味着您可以使用給定的參數生成URL,就像您可以使用Symfony2核心中提供的路由器組件一樣。 https://github.com/FriendsOfSymfony/FOSJsRoutingBundle

+0

我看了看模塊,似乎是一個更好的解決方案,據我所知,這是我的理解是,生成的路線工作類似於樹枝中的路徑生成和控制器。這將是解決問題的更好方法。我會用這個模塊進行一些測試,看看對我來說這是如何解決的。 – nienaber

2

您可以在.htaccess中使用不同的重寫規則。然後gitignore該文件。因此,在你的本地主機上,它總是通過app_dev.php路由,並通過app.php製作。 爲了幫助您傾倒路線,Symfony2有一個命令: http://symfony.com/doc/current/cookbook/configuration/apache_router.html

+0

這是一個有趣的解決方案。我會仔細看看的。目前,爲了開發,我不使用apache,而是使用內置的PHP服務器並編寫一個重寫腳本來模仿現在不可取的。 – nienaber

+0

但是,你將不得不維護你的路線和.htaccess – Wissem