gpt4 book ai didi

Django找不到具有Debug = False和Allowed_Hosts的静态文件

转载 作者:行者123 更新时间:2023-12-04 05:30:21 33 4
gpt4 key购买 nike

大家好,我无法解决此问题:如果将DEBUG设置为False,则无法运行manage.py runserver:

CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False

然后,假设我向ALLOWED_HOSTS添加了一些内容:
ALLOWED_HOSTS = ['*']
or
ALLOWED_HOSTS = ['localhost']
or
ALLOWED_HOSTS = ['127.0.0.1', 'localhost']

现在,我可以执行“manage.py runserver”,但静态文件不起作用。奇怪的。

如果我将DEBUG设置为True,则可以将ALLOWED_HOSTS设置为none,将localhost或设置为*。因此,我认为问题与调试有关。我不明白

最佳答案

DEBUG模式下,Django开发服务器会为您处理提供的静态文件。但是,这并不是最佳的生产方式,因为它比真正的服务器效率低得多。参见here

Serving the files

In addition to these configuration steps, you’ll also need to actually serve the static files.

During development, if you use django.contrib.staticfiles, this will be done automatically by runserver when DEBUG is set to True (see django.contrib.staticfiles.views.serve()).

This method is grossly inefficient and probably insecure, so it is unsuitable for production.

See Deploying static files for proper strategies to serve static files in production environments.


查看 here,了解如何在生产环境中提供静态文件。
编辑:添加以下内容以回答@alejoss有关使用DEBUG = True查看错误页面的问题。
我在根 urls.py文件中添加了以下内容:
if settings.DEBUG:
urlpatterns += patterns(
'',
url(r'^400/$', TemplateView.as_view(template_name='400.html')),
url(r'^403/$', TemplateView.as_view(template_name='403.html')),
url(r'^404/$', 'django.views.defaults.page_not_found'),
url(r'^500/$', 'django.views.defaults.server_error'),
)
您可能需要稍作改动(即,如果模板名称不同,则可能需要编辑 400403页面)。基本上,这使您可以访问 http://localhost/400来查看 400错误页面, http://localhost/403来查看 403错误页面,等等。

关于Django找不到具有Debug = False和Allowed_Hosts的静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28443991/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com