3

我有一个简单的 js 文件:

//base.js

...
var url = '/post/' + id + '/comment';
...

我使用的是 Symfony2,所以在服务器端所有的 url 都是由路由器生成的,我在 js 中使用硬编码的 url 让我很烦恼。

有没有办法让它们更有活力?
这些是我想过但我不满意的解决方案

  • 在 HTML 标签中定义它们,例如<div data-url="<?php path('post_comment'); ?>">
  • 在内联脚本标签中定义它们<script language="text/javascript">...</script>

我认为一些大网站(SO,GitHub等)的js文件中的url是硬编码的,对吗?

4

2 回答 2

1

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。这很棒!

于 2013-01-14T00:13:43.167 回答
0

您至少应该通过在配置对象中定义所有常量变量并使用属性名称或 getter 函数访问它来最小化命名空间污染。

于 2013-01-14T00:10:18.750 回答