【问题标题】:django static files cannot be found找不到django静态文件
【发布时间】:2014-11-10 02:35:09
【问题描述】:

在我的设置文件中,我有以下内容

STATIC_URL = '/static/'

我的应用名称是 reg_service

所以我的目录结构就像reg_service/reg_service/settings.py

我在reg_service/static/js 中有静态目录 reg_service/manage.py reg_service/reg_service reg_service/templates

但是在我的模板中,如果我包含以下脚本,结果是 "GET /static/js/jquery.min.js HTTP/1.1" 404 1652 这里有什么问题

    <script src="{{ STATIC_URL }}js/jquery.min.js"></script>

【问题讨论】:

  • 您应该使用{{ load static }}{{ static 'js/jquery.min.js' }}。我不认为STATIC_URL 打算直接使用。
  • 当我执行上述错误时,无法解析剩余部分:'static' from 'load static'
  • 其实是 {% load staticfiles %}
  • 我尝试了 {% load static %} {% static 'js/jquery.min.js' %} 和 {% load static %} {{ static 'js/jquery.min.js ' }} 还是一样的
  • @mxlian:对。 {% 不是 {{。从记忆中走出来,刚刚醒来。

标签: django django-templates django-views django-settings


【解决方案1】:

django 的理念是您应该直接通过您的网络服务器提供静态文件。

出于开发目的,您可以“欺骗”django 自己提供静态文件:

urls.py:

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    # ... the rest of your URLconf goes here ...
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

Django 将找到您的静态文件,并在 STATIC_URL 下定义的 url 下提供它们。

这不是很好,也不是很安全,但可以用于开发。对于生产,您应该配置您的 Web 服务器(Apache、Nginx 等)以直接在 STATIC_URL 中定义的 url 下提供文件。

欲了解更多信息,请参阅:https://docs.djangoproject.com/en/dev/howto/static-files/#serving-static-files-during-development

【讨论】:

    猜你喜欢
    • 2021-08-27
    • 2011-08-26
    • 2020-06-22
    • 2021-08-16
    • 2020-06-20
    • 2019-06-24
    相关资源
    最近更新 更多