2013-08-19 16 views
5

私はSymfonyで角度のあるフロントエンドを使用しています。私が$routeProviderを宣言するとき、私は/app_dev.php/を含める必要があります。なぜなら、html 5モードをtrueに設定しているからです:$locationProvider.html5Mode(true);Angfection HTML5ルートを持つasseticを使用しているSymfony2

$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); 

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

対問題は、私は本番環境を使用したいとき、私は戻ってそれらのルートを変更するには覚えておく必要があります。

私が私が私がproddevためにダンプをやっているか、私は痛いほどターゲットenvirnmentのパスを変更することを忘れないようにしなければならないのを検出するためにダンプを行うときasseticで、おそらくこれを処理するための良い方法はありますか?

おかげ

答えて

6

FOSJsRoutingBundleを試してみてください。このバンドルを使用すると、JavaScriptコードでルーティングを公開することができます。つまり、Symfony2コアで提供されるルータコンポーネントと同様に、指定されたパラメータでURLを生成することができます。 https://github.com/FriendsOfSymfony/FOSJsRoutingBundle

+0

私はモジュールを見て、私が読んだところではるかに良い解決策であるようです。生成されたルートは、コントローラ。これは問題を解決するもっと良い方法です。私はこのモジュールでいくつかのテストを実行し、それがどのように私のために働くか見る。 – nienaber

2

あなたの.htaccessファイル内の別の書き換えルールを使用することができます。そして、ファイルをgitignoreします。そのため、あなたのlocalhost上では、常にapp_dev.phpを経由してapp.php経由でルーティングされます。 経路をダンプするのに役立つように、Symfony2には次のコマンドがあります。 http://symfony.com/doc/current/cookbook/configuration/apache_router.html

+0

これは興味深い解決策です。私はそれを徹底的に調べます。現在のところ、開発のために、私はApacheを使用せず、PHPサーバーを構築し、それを模倣する書き換えスクリプトを書くことは今のところ望ましくありません。 – nienaber

+0

しかし、あなたはルートと.htaccessを維持する必要があります – Wissem

関連する問題