質問

I use an angular front end with Symfony. When I declare my $routeProvider I have to include my /app_dev.php/ becuase I set the html 5 mode to true: $locationProvider.html5Mode(true);.

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

The problem is I have to remember to change those routes back when I want to use the production environment.

I there a good way to handle this perhaps with assetic when I do a dump to detect I am doing the dump for the dev vs prod or do I just have to painfully remember to change the paths for the target envirnment?

Thanks

役に立ちましたか?

解決

Try to use FOSJsRoutingBundle. This bundle allows you to expose your routing in your JavaScript code. That means you'll be able to generate URL with given parameters like you can do with the Router component provided in the Symfony2 core. https://github.com/FriendsOfSymfony/FOSJsRoutingBundle

他のヒント

You could use different rewrite rules in your .htaccess. And then gitignore the file. So that on your localhost its always routed through app_dev.php and on prod through app.php. In order to help you dumping the routes, Symfony2 has a command: http://symfony.com/doc/current/cookbook/configuration/apache_router.html

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top