1

如主题所述,我的 Django 站点媒体 url 在尝试访问后返回 404。一切都完美无缺,直到我想结束开发过程并设置

DEBUG = True

在 settings.py 中让网站一劳永逸地完成。当我将 DEBUG 改回

DEBUG = False

它再次正常工作。我不知道是什么问题,有什么建议吗?

4

1 回答 1

7

这是设计使然:https ://docs.djangoproject.com/en/dev/howto/static-files/#serving-static-files-during-development

如果您如上所述使用 django.contrib.staticfiles,runserver 将在 DEBUG 设置为 True 时自动执行此操作。

话虽如此,您可以通过修改以下解决方法urls.py

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

urlpatterns = patterns('',
    # ... the rest of your URLconf goes here ...
) + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
  + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

请注意,这是非常低效的,不鼓励用于生产。您通常应该配置您的 Web 服务器(apache、nginx 等)以提供静态和媒体内容。

于 2015-02-12T13:04:48.987 回答