将jQuery加载到Django中

3
我有一个非常基础的问题。我正在尝试在Django项目中构建一些AJAX功能。我打算使用jQuery。现在,我只是通过Linux本地运行代码。我一直在这里测试一些代码,所以我相当确定它可以工作。但我遇到了麻烦,无法确定在哪里放置jQuery源代码以及我的设置组合。我下载了jQuery并将其放在我认为是Media文件夹的位置。我的settings.py文件如下:
MEDIA_ROOT = os.path.join(PROJECT_DIR, 'books/media/')<br>
MEDIA_URL = 'http://localhost:8000/books/media/'

在我的HTML模板中,我正在引用:
<script type="text/javascript" src="/media/js/jquery-1.4.2.min.js">

但我的所有函数都不起作用。我确定这是一些愚蠢而明显的问题(尽管对我来说并不明显)。我该如何正确引用jQuery?

5个回答

7

您可以硬编码链接,如下所示:

<script type="text/javascript" src="/books/media/js/jquery-1.4.2.min.js">

如果你使用RequestContext渲染模板并使用django.core.context_processors.media上下文处理器,那么你可以在模板中访问MEDIA_URL
<script type="text/javascript" src="{{ MEDIA_URL }}}js/jquery-1.4.2.min.js">

太棒了!你知道为什么这个可以工作:<script type="text/javascript" src="/books/media/js/jquery-1.4.2.min.js"></script> <script type="text/javascript"> . . .code. . .</script> 但是这个不行:<script type="text/javascript" src="/books/media/js/jquery-1.4.2.min.js"> . . .code. . .</script> - Ed.
3
在 script 标签中,你不能同时使用 src 和 code。这是 HTML 规定的方式。请参考这个 StackOverflow 的问题:https://dev59.com/AXNA5IYBdhLWcg3wL62x - Alasdair

3

我相信你需要 src="/books/media/js/jquery-1.4.2.min.js"

此外,我这样做。

<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
  google.load("jquery", "1.4");
</script>

这样加载它是否更好,还是将其下载到我的目录中? - Ed.
我更喜欢这样做,因为少了一个要担心的Javascript文件,并且我还使用google.load来处理其他一些事情,比如他们的地图API。但如果您愿意,将其下载到自己的目录中也没有问题。 - Dave Aaron Smith
理论上它可以使您的网站更快。如果用户访问使用Google托管jQuery的A网站,然后访问您的网站,则jQuery已经在浏览器缓存中,因此无需再次下载。 - Alasdair

2

你需要设置Django来提供媒体文件的服务(否则,请从适当的HTTP服务器中提供)。请在你的url.py中添加以下行:

(r'^mymedia/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),

请确保更改 mymedia 的部分以与您的媒体目录对齐。


什么是“提供静态媒体”的意思?这只有在本地项目中才是必要的吗? - Ed.

1

您能尝试以下内容:

  1. 使用您的浏览器或 curl 访问URL http://localhost:8000/books/media/js/jquery-1.4.2.min.js 并查看结果。

  2. 检查您的URL配置,确认已定义一个用于静态服务的URL。


0

步骤1:将jQuery-2.0.3.js文件放置于应用程序的“static”子文件夹中,例如“books/static/jquery-2.0.3.js”;

步骤2:配置您的urls.py文件,添加以下行:

r('^static/(?P<path>.*)$','django.views.static.serve'),

步骤3:在您的模板文件中,按以下方式使用js文件:

<script type="text/javascript" src="/static/jquery-2.0.3.js"></script>

就是这样。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接