如何使 STATIC_URL 在外部 JS 文件(Django)中工作

Posted

技术标签:

【中文标题】如何使 STATIC_URL 在外部 JS 文件(Django)中工作【英文标题】:How to make STATIC_URL work in external JS Files (Django) 【发布时间】:2012-07-08 22:25:39 【问题描述】:

我正在尝试在外部 javascript 文件中使用 STATIC_URL。我期待结果,因为它在模板中工作,但我发现它在外部 Javascript 文件中不起作用。

还请告诉我一些解决方法,以使 STATIC_URL 在 javascript 文件中工作,因为这将使我的项目更易于管理。

我还发送了许多 ajax 请求,我想在我的 JS 文件中添加类似 url 模板标签的东西。

如果您知道其中任何一个的解决方案,请告诉我。

谢谢

【问题讨论】:

【参考方案1】:

我使用一个简单的 Django 应用程序来使 Python / Django 设置在 javascript 中可用。

https://github.com/incuna/django-settingsjs

它通过在模板中呈现设置以相同的方式工作,但提供了一种机制,可以使用视图、url 和可选的信号在 JavaScript 中提供多个变量。

【讨论】:

【参考方案2】:

我对这个问题的解决方案是在某个时候将STATIC_URL 传递给您的 JavaScript 代码,以便它也知道值。像这样的:

<script type="text/javascript">
myJavaScript(' STATIC_URL ');
</script>

您的 JavaScript 函数 myJavaScript 然后可以在 URL 和任何需要的地方使用它。

【讨论】:

除了通过模板传递之外别无他法

以上是关于如何使 STATIC_URL 在外部 JS 文件(Django)中工作的主要内容,如果未能解决你的问题,请参考以下文章

在外部 js 文件中使用会话

从按钮单击事件直接调用存储在外部 JS 文件中的 JavaScript 函数

放置在外部脚本文件中时 Javascript 不执行

jquery代码如何写到外部js中 为啥 在外部js中 写上 $(document).ready(function();就报错

在外部 Javascript 文件中使用 PHP 代码

如何在外部终端上运行文件?