【问题标题】:How to tell my django template where static file (dajax.core.js) is?如何告诉我的 django 模板静态文件(dajax.core.js)在哪里?
【发布时间】:2011-12-03 15:32:20
【问题描述】:

我正在尝试在我的 Django 应用程序中使用 Dajax,但是当我尝试将它包含在我的 html 模板中时出现 404 错误。我已经在 Windows 7 上安装了 Dajax 和 Dajaxice。这是我的 STATIC_URL 的样子:

STATIC_URL = '/static/'

我的静态文件夹是放在我的应用程序的文件夹中,所以从我的Eclipse项目的src文件夹中,静态文件夹的路径是:

appname/static

我已将以下 javascript 文件放入我的静态目录中的“js”目录中:

dajaxice.core.js
jquery.dajax.core.js

在我的模板的 head 标记中是我的脚本标记,如下所示:

<script src="{{ STATIC_URL }}js/jquery.dajax.core.js" type="text/javascript" charset="UTF-8"></script>

但是,当我打开模板时,我收到以下错误:

GET http://localhost:8000/dajax/js/jquery.dajax.core.js 404 (NOT FOUND)

为什么找不到 jquery.dajax.core.js?感谢您的帮助!

编辑另外,这是我的观点:

from django.shortcuts import render_to_response
from django.template import RequestContext

def dajax(request):
    return render_to_response('dajax.html', context_instance=RequestContext(request))

这很简单,因为我只是在测试。

【问题讨论】:

  • 您在 urls.py 中处理 /static/ 吗?

标签: python django templates


【解决方案1】:

我认为这是因为您需要为 django 添加静态服务器(仅用于本地运行)

将此添加到您的 urls.py:

if settings.DEBUG:
    urlpatterns += patterns('',
        (r'^static/(.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_PATH}),
    )

或者您需要将MEDIA_ROOT 指向静态文件夹的绝对路径。

否则,我猜你在设置中声明了你的 STATIC_URL 两次,因为你说你将它设置为 /static/ ,但随后模板似乎将其替换为 dajax

GET @987654321@ 404 (NOT FOUND)

应该是http://localhost:8000/static/js/jquery.dajax.core.js

【讨论】:

  • 我检查了我的 settings.py 文件,我只设置了一次 STATIC_URL。我还将 sn-p 添加到我的 urls.py 代码中,但我仍然得到同样的错误。如果我刚刚上传了我的应用程序供您查看,会有帮助吗?我只是通过 django runserver 在本地运行它,所以很容易转移到另一个环境。
  • 我是个菜鸟。我的应用程序没有包含在 settings.py 的 INSTALLED_APPS 元组中。添加解决了我的问题。此外,静态文件无需添加静态模式即可工作。
猜你喜欢
  • 1970-01-01
  • 2011-10-13
  • 2014-12-02
  • 2016-06-19
  • 2011-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多