【问题标题】:Django; cannot load static files姜戈;无法加载静态文件
【发布时间】:2018-08-18 06:15:14
【问题描述】:

我一直在使用 Django,但无法加载我的静态文件。 我的项目结构是这样的

blog/
|___apps/
|     |__static/
|     |     |__css/
|     |     |__js/
|     |
|     |__templates/
|     |     |__base.html
|     |     |__feeds/
|     |
|     |__feeds/
|
|___blog/
       settings.py

我的settings.py是这样的

APPS_DIR = os.path.join(BASE_DIR, 'apps')
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(APPS_DIR, 'static'),
   )

奇怪的是只针对index.html,即使html文件在templates/feeds/里面也可以加载静态文件。

我的urls.py 可能有问题,因为错误提示如下

未找到:/feeds/static/css/styles.css

似乎 Django 试图在 static/feeds/ 中查找静态文件。

urls.py是这样的

urlpatterns = [
path('', views.index, name='index'),

path('feeds/', include([
    path('list', views.list_entry, name='list_entry'),

如果可能,我不想在static 内创建应用名称文件夹。我该如何解决这个问题?

【问题讨论】:

  • 我可以查看 list_entry 视图吗?
  • 向我们展示您如何加载静态文件?是像/static/ 还是static/ 还是{%static "path" %}static/ 是加载静态文件的错误方法,从 url 我可以说你只使用这种方法。
  • 其实现在才有效。我使用加载静态文件,如 static 并将其更改为 {% static path %} 并且它确实有效。

标签: python django


【解决方案1】:
from django.conf import settings
from django.conf.urls.static import static

尝试在项目 url 中导入这些,然后添加以下内容:

urlpatterns = [
  path('', views.index, name='index')
  ....
  ] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

【讨论】:

  • 其实我已经加了static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)。我应该改变这个吗?
  • 它适用于媒体。你必须像 Nikhil 所说的那样为静态文件添加静态 url
猜你喜欢
  • 2021-11-12
  • 2018-03-23
  • 2021-01-27
  • 2015-03-10
  • 2014-09-20
  • 1970-01-01
  • 1970-01-01
  • 2020-08-17
相关资源
最近更新 更多