【问题标题】:how to set static files directory in django如何在django中设置静态文件目录
【发布时间】:2014-05-05 15:35:08
【问题描述】:

我正在尝试启动并运行现有的 django 应用程序,但没有显示 css 或任何其他静态文件。我得到了错误:

"GET /static/css/mycss.css HTTP/1.1" 404 50

在设置中使用以下值:

DJANGO_ROOT = dirname(dirname(abspath(__file__)))
SITE_ROOT = dirname(DJANGO_ROOT)
STATIC_ROOT = normpath(join(SITE_ROOT, 'assets'))
STATIC_URL = '/static/'

STATICFILES_DIRS = (
    normpath(join(SITE_ROOT, 'static')),
)

该应用程序包含一个名为“静态”的目录。它在当前目录结构中:

my-django-project > my-django-project > 静态 > css > mycss.css

当我通过 localhost 访问 home url 时,出现上述 404 错误。

我做错了什么?

【问题讨论】:

  • 您还需要发布您的网络服务器配置。 Django 通常根本不提供静态文件,你应该配置你的网络服务器来直接处理这些请求。

标签: python django django-staticfiles django-settings django-static


【解决方案1】:

您需要运行collectstatic命令将您应用中的静态文件收集到STATIC_ROOT

命令可以这样运行:

python managy.py collectstatic

更多关于静态文件的信息可以在django documentation on static files找到。

【讨论】:

  • 我收集了所有的静态文件,我仍然得到 404s
  • 好的,是否创建了一个新目录my-django-project > static,其中包含来自您应用的静态文件?
  • 我明白了。用有关收集静态文件的位置的信息更新了我的答案(“STATIC_ROOT”,而不是STATICFILES_DIR)。
  • 您使用的是开发服务器(即./manage.py runserver)还是其他网络服务器?
  • 检查应用程序中的某些静态文件是否确实存在于assets 目录(即assets/css/mycss.css)中,并检查django.contrib.staticfiles 是否在您的INSTALLED_APPSdocs.djangoproject.com/en/dev/howto/static-files/…)中。
猜你喜欢
  • 1970-01-01
  • 2020-06-19
  • 1970-01-01
  • 2015-02-05
  • 2014-06-02
  • 2013-01-05
  • 2013-10-22
  • 1970-01-01
  • 2013-01-10
相关资源
最近更新 更多