是否有任何技术可以避免硬编码URL,尤其是Django中的JavaScript文件等外部静态资源文件中的Ajax调用URL。
答案 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;。
这是我遵循的方法,以避免自己对网址进行硬编码。您可以按照这个或如果您找到另一个比这更好或更有效的,请告诉我。