【问题标题】:django deployed site not loading staticdjango 部署的站点不加载静态
【发布时间】:2013-09-16 12:38:24
【问题描述】:

也许我错过了什么?我在我的 Amazon ec2 服务器上部署了一个站点,它加载了页面,但不是静态的。我将“site_media”目录放在“www”目录下,如下所示: www/site_media/static 等。当我检查站点上的图像元素时,它的 URL 接缝指向正确的方向,如 http://mysite.com/site_media/static/img/logo_text.jpg(mysite 被我的站点 URL 替换)但是当我访问页面时,我得到找不到 404 页面。因为我现在仍然打开调试,所以我得到了一个可用 URL 的列表,与静态有关的一个是 ^site\_media\/media\/(?P<path>.*)$ 但后来它说 The current URL, site_media/static/img/logo_text.jpg, didn't match any of these.

这是我的 settings.py 文件中的静态:

STATIC_ROOT = os.path.join(PACKAGE_ROOT, "site_media", "static")


STATIC_URL = "http://mysite.com/site_media/"


STATICFILES_DIRS = [
    os.path.join(PACKAGE_ROOT, "static"),

]


STATICFILES_FINDERS = [
    "django.contrib.staticfiles.finders.FileSystemFinder",
    "django.contrib.staticfiles.finders.AppDirectoriesFinder",
]

下面是如何将静态添加到我的主 urls.py 文件中:

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

如果您需要任何其他信息,请告诉我!

【问题讨论】:

  • 你运行collectstatic命令了吗?
  • 是的。实际的静态文件存在于 www/site_media/static/ 目录中。我不知道为什么它会抛出 404 为什么如果我访问它会抛出 404。
  • 您是否已将 'django.contrib.staticfiles' 添加到您的 installed_apps 中?

标签: django django-staticfiles django-deployment


【解决方案1】:

您不应该在 urlpattern 中使用 STATIC_URLSTATIC_ROOT 而不是 MEDIA_URLMEDIA_ROOT

urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

【讨论】:

  • 我实际上最终将静态文件托管在不同的服务器上,并将其链接到静态 URL。但我认为你是对的,这就是为什么它在同一台服务器上托管时无法正常工作的原因。
猜你喜欢
  • 2022-07-05
  • 2015-08-22
  • 2014-06-18
  • 2017-03-01
  • 2022-12-09
  • 2018-02-18
  • 2011-08-18
  • 1970-01-01
  • 2017-12-06
相关资源
最近更新 更多