我在这里:
现在这是我的路由文件示例:
$routeProvider.
when('/liste-produits', {
templateUrl: '../templates/list-products.html',
controller: 'ProductListCtrl'
}).
otherwise({
redirectTo: '/'
});
我必须使用“../”这一事实。因为否则它将无法在dev environnement(app_dev.php)中运行。当然,当我将其发布到生产(app.php)时,我将不需要添加此“../”
你们了解我的问题吗?
因为我可以从路由文件中的Symfony工作中获得资产。
我该如何解决这个问题?
答案 0 :(得分:2)
有一种方法,您可以在基本树枝文件中定义全局变量: 您可以依次使用的Symfony 2:image paths in javascript file with assetic AngularJS。
还有一个名为FOSJsRoutingBundle的捆绑包,它会将您的路由暴露给客户端,从而暴露出javascript。这对你来说可能很有趣。
然而还有另一种选择; - 我亲自使用了Rein Baarsma发布的方法和twig文件,然后缓存了生成的javascript 。
编写一个request listener非常简单,可以将twig文件每天渲染一次javascript文件,或者删除javascript文件。 我对样式表使用了相同的方法,用于每日更换颜色的项目。 如果你不缓存它,浏览器将重新访问在每个页面上返回javascript的路由并重新呈现javascript文件,这会增加很多开销。
答案 1 :(得分:0)
您可以简单地使用js文件中的视图创建Symfony控制器。这样你就可以使用twig(或php)模板函数(比如twig的path()函数)来避免任何奇怪的url。
在您的控制器中:
public function routingAction(Request $request) {
$this->render('angular/routing.twig.js');
}
在您的路由
中$routeProvider.
when('/liste-produits', {
templateUrl: {{ path('product_list') }},
controller: 'ProductListCtrl'
}).
otherwise({
redirectTo: '/'
});