【问题标题】:Load jQuery into Django将 jQuery 加载到 Django 中
【发布时间】:2011-04-10 10:19:05
【问题描述】:

我有一个非常基本的问题。我正在尝试将一些 AJAX 功能构建到 Django 项目中。我打算使用 jQuery。现在,我只是通过 Linux 在本地运行代码。我一直在测试一些代码here,所以我有理由确定它可以工作。但是我无法确定将 jQuery 源代码与我的设置相结合的位置。

我下载了jQuery 并将它放在我认为是我的媒体文件夹中。我的 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?

【问题讨论】:

    标签: jquery django


    【解决方案1】:

    第一步:把你的jquery-2.0.3.js放到APP的“static”子文件夹中,比如“books/static/jquery-2.0.3.js”;

    第二步:配置你的urls.py,添加下面一行:

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

    Step3:在你的模板文件中,使用js文件如下:

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

    就是这样。

    【讨论】:

      【解决方案2】:

      您可以将链接硬编码为

      <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标签中不能同时有src和code。这只是指定html的方式。请参阅此 stackoverflow 问题:stackoverflow.com/questions/1056325/…
      【解决方案3】:

      您需要设置 Django 来提供您的媒体文件(否则,从适当的 HTTP 服务器提供它们)。将以下行添加到您的url.py

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

      确保更改 mymedia 部分以与您的媒体目录保持一致。

      【讨论】:

      • 这是什么意思:提供静态媒体?这只需要本地项目吗?
      【解决方案4】:

      您可以尝试以下方法吗:

      1. 使用浏览器访问 URL http://localhost:8000/books/media/js/jquery-1.4.2.min.jscurl,看看会出现什么。

      2. 检查您的 URL 配置,看看您有一个为使用静态服务提供媒体定义的 URL。

      【讨论】:

        【解决方案5】:

        我相信你会需要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>
        

        【讨论】:

        • 是这样加载还是下载到我自己的目录下比较好?
        • 我更喜欢这样做,因为需要担心的 Javascript 文件少了 1 个,而且我还将 google.load 用于其他一些事情,例如他们的地图 API。确实,如果您愿意,可以将其下载到您自己的目录中。
        • 理论上它可以让你的网站更快。如果用户访问使用 Google 托管 jQuery 的网站 A,然后访问您的网站,则 jQuery 已经在浏览器缓存中,因此不需要再次下载。
        猜你喜欢
        • 1970-01-01
        • 2013-05-13
        • 1970-01-01
        • 2021-05-29
        • 1970-01-01
        • 1970-01-01
        • 2012-08-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多