如何告诉我的 django 模板静态文件(dajax.core.js)在哪里?

Posted

技术标签:

【中文标题】如何告诉我的 django 模板静态文件(dajax.core.js)在哪里?【英文标题】:How to tell my django template where static file (dajax.core.js) is? 【发布时间】: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/ 吗? 【参考方案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 元组中。添加解决了我的问题。此外,静态文件无需添加静态模式即可工作。

以上是关于如何告诉我的 django 模板静态文件(dajax.core.js)在哪里?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 django 模板脚本中传递静态 js 文件?

模板不存在。加载静态文件和模板 Django 项目结构

如何在静态文件中使用 django 模板语法

如何从 Django 加载模型管理文件中的静态文件?

Django:在部署时通过模板引擎渲染静态文件

Django:无法从 DigitalOcean Droplet 上的模板加载静态文件