我使用Symfony的角度前端。当我声明我的$routeProvider
时,我必须包含我的/app_dev.php/
因为我将html 5模式设置为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);
问题是我必须记得在我想要使用生产环境时更改这些路线。
当我执行转储以检测我正在为assetic
vs dev
执行转储时,我可以使用prod
处理此问题,或者我只需要痛苦记得改变目标环境的路径吗?
由于
答案 0 :(得分:6)
尝试使用FOSJsRoutingBundle。此捆绑包允许您在JavaScript代码中公开路由。这意味着您将能够使用给定参数生成URL,就像您可以使用Symfony2核心中提供的路由器组件一样。 https://github.com/FriendsOfSymfony/FOSJsRoutingBundle
答案 1 :(得分:2)
您可以在.htaccess中使用不同的重写规则。然后gitignore文件。因此,在本地主机上,它始终通过app_dev.php和prod通过app.php进行路由。 为了帮助您转储路由,Symfony2有一个命令: http://symfony.com/doc/current/cookbook/configuration/apache_router.html