我有一个简单的js文件:
//base.js
...
var url = '/post/' + id + '/comment';
...
我正在使用Symfony2所以在服务器端所有的URL都是由路由器生成的,而且我在js中使用硬编码的URL会让我感到烦恼。
有没有办法让它们更有活力?
这些是我想到的解决方案,但我不满意:
<div data-url="<?php path('post_comment'); ?>">
<script language="text/javascript">...</script>
我认为某些大型网站(SO,GitHub等)的js文件中的网址是硬编码的,我是对的吗?
答案 0 :(得分:1)
Friends of Symfony JS Routing Bundle完全符合您的需求
var url = Routing.generate('some_route_to_expose', { foo: 'bar' });
// url is http://somehost.com/app_dev.php/my_route
该软件包还允许您转储,编译和缩小生成的javascript。很棒!
答案 1 :(得分:0)
您应该至少通过在配置对象中定义所有常量变量并使用属性名称或getter函数来访问它来最小化命名空间污染。