【发布时间】:2017-06-07 16:23:37
【问题描述】:
是否有任何技术可以避免对 URL 进行硬编码,尤其是在外部静态资源文件(如 Django 中的 JavaScript 文件)中用于 Ajax 调用的 URL。
【问题讨论】:
标签: django
是否有任何技术可以避免对 URL 进行硬编码,尤其是在外部静态资源文件(如 Django 中的 JavaScript 文件)中用于 Ajax 调用的 URL。
【问题讨论】:
标签: django
另一种处理方法是将 URL 添加到容器的数据属性中。
<div data-add-book-url="{% url "book:add" %}">
...
</div>
然后您从该数据属性中提取该 URL 并在 AJAX 调用中使用它。
【讨论】:
我不知道是否有任何标准方法可以避免对 JavaScript 文件中的 URL 进行硬编码,但我可以建议一种方法。您可以在单独的文件中定义一个对象,例如“constants.js”的格式,
var api = {
api_name1 : "url_ for your api1",
api_name2 : "url_ for your api2",
};
记得在使用脚本标签的任何其他 js 文件之前调用该文件。然后,由于 JavaScript 中的变量提升,JavaScript 会将这个对象“api”放在声明的顶部。此外,您可以通过调用api.api_name1 访问每个 URL。万一网址有变化,只需要在“constants.js”这个文件中进行更改即可。
这是我正在遵循的一种方法,以避免自己对 URL 进行硬编码。你可以关注这个,或者如果你找到另一个比这更好或更有效的方法,请告诉我。
【讨论】: