如何避免在Django上的静态文件中硬编码URL?

时间:2017-06-07 16:23:38

标签: django

是否有任何技术可以避免硬编码URL,尤其是Django中的JavaScript文件等外部静态资源文件中的Ajax调用URL。

2 个答案:

答案 0 :(得分:2)

另一种处理方法是将URL添加到容器上的数据属性。

<div data-add-book-url="{% url "book:add" %}">
    ...
</div>

然后从该数据属性中提取该URL并在AJAX调用中使用它。

答案 1 :(得分:1)

我不知道是否有任何标准方法可以避免对JavaScript文件中的网址进行硬编码,但我可以建议一种方法。您可以在单独的文件中定义一个对象,例如&#34; constants.js&#34;格式,

var api = {
    api_name1 : "url_ for your api1",
    api_name2 : "url_ for your api2",
    };

请记住使用脚本标记在任何其他js文件之前调用该文件。然后,JavaScript将把这个对象&#34; api&#34;由于JavaScript中的变量提升,因此返回到声明的顶部。此外,您可以通过调用api.api_name1来访问每个网址。万一,如果网址发生变化,您只需更改此文件&#34; constants.js&#34;。

这是我遵循的方法,以避免自己对网址进行硬编码。您可以按照这个或如果您找到另一个比这更好或更有效的,请告诉我。