Django DEBUG = False 引起的问题

2015-04-20 16:06:27 +08:00
 imkh

把settings.py中的DEBUG设置为False前端页面显示不正常了

DEBUG = False
TEMPLATE_DEBUG = False
ALLOWED_HOSTS = ['*']

错误信息

但开启后就能正常显示了,这是什么原因引起的?

settings.py代码

import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))

SECRET_KEY = 'd+eb61(a0&cu&)0dmok#g9kl1&!+*e*jo5v#(t5#do68%ncdow'

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False

TEMPLATE_DEBUG = False

ALLOWED_HOSTS = ['*']


# Application definition

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog',
    'south',
)

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
)

ROOT_URLCONF = 'mysite.urls'

WSGI_APPLICATION = 'mysite.wsgi.application'


# Database
# https://docs.djangoproject.com/en/1.6/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mysite',
        'USER': 'mysite',
        'PASSWORD': '123456',
        'HOST': '127.0.0.1',
        'PORT': '3306',
    }
}

# Internationalization
# https://docs.djangoproject.com/en/1.6/topics/i18n/

LANGUAGE_CODE = 'zh-cn'

TIME_ZONE = 'Asia/Shanghai'

USE_I18N = True

USE_L10N = True

USE_TZ = True


# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.6/howto/static-files/

STATIC_URL = '/static/'
STATICFILES_DIRS = (
        os.path.join(BASE_DIR, 'static'),
)
TEMPLATE_DIRS = (
        os.path.join(BASE_DIR, 'templates'),
)
10253 次点击
所在节点    Django
9 条回复
Archangel_SDY
2015-04-20 16:53:58 +08:00
DEBUG=False 就不会用自带的 server 去 serve js/css 等静态文件了,你需要用 nginx 之类的去做静态文件的 server.
fxxkgw
2015-04-20 17:00:49 +08:00
开启后用的是自带的http服务器,关闭后用的安装的Apache或者nginx之类的,应该是web服务器或者uwsgi之类没设置好吧。

PS: STATIC_ROOT设置为css js这些文件所在的templates目前的上一级。。
zjgsamuel
2015-04-20 17:02:34 +08:00
静态文件 设置 参见1楼~~
imkh
2015-04-20 17:06:12 +08:00
oott123
2015-04-20 19:20:35 +08:00
SECRET_KEY 建议换一下。
sallowdish
2015-04-21 02:35:17 +08:00
./manage.py collectstatic
twor2
2015-04-26 23:30:32 +08:00
Windows 下面用 pycharm 开发并运行, 无专门的 http 服务器,是不是debug =false 后,无论如何设定都会样式丢失?

如果想在非调试状态下运行,必须暗转一个 Apache 之类?
bravecarrot
2015-05-06 09:13:06 +08:00
@twor2 不布置web容器,就是dev环境,一定要开debug。想换成apache之类的,在关闭debug后,还要collectstatic。参见文档中关于static的部分。也可以去#django irc问问。
twor2
2015-05-06 13:29:04 +08:00
@bravecarrot 现在搞明白了,前几天花不少时间查找 google 和 测试

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/184979

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX