5 django nginx django-media gunicorn
我的网站终于可以正常工作了,但媒体文件未提供服务,debug = False我该怎么办?我按照本教程尝试让它与 nginx 一起工作,但它不断损坏并且不提供静态服务等,所以我选择了纯gunicorn和whitenoise。我真的不是部署专家,只是开发专家。请帮忙。媒体文件的安全性不是问题,因为只有管理员才能上传它们,而最终用户则不能。具体来说,我需要知道是否是世界末日debug = True只留下媒体文件。或者是否有一种简单的方法可以为他们提供服务debug = False。
Das*_*rum -1
以下是我如何设置 Whitenoise 来为我的应用程序提供静态文件。我使用的是 RedHat 7,但 Ubuntu 中的情况应该类似。我的 Django 版本是 1.11。
请注意,在开发环境之外使用 DEBUG=True 运行是不安全的。
首先,我设置一个指向静态文件位置的环境变量:
export DJANGO_STATIC_ROOT=/home/<user>/<project>/staticfiles
Run Code Online (Sandbox Code Playgroud)
在设置.py中:
## Static files
STATIC_URL = '/static/'
if DEBUG:
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
else:
STATIC_ROOT = environ['DJANGO_STATIC_ROOT']
## Whitenoise - Insert in 2nd place after SecurityMiddleware
MIDDLEWARE_CLASSES.insert(1,'whitenoise.middleware.WhiteNoiseMiddleware')
# Add app before django.contrib.staticfiles to enable Whitenoise in development
for i, app in enumerate(INSTALLED_APPS):
if app == 'django.contrib.staticfiles':
insert_point = i
INSTALLED_APPS.insert(insert_point,'whitenoise.runserver_nostatic')
Run Code Online (Sandbox Code Playgroud)
每次部署应用程序时,请务必运行collectstatic命令来更新DJANGO_STATIC_ROOT位置中的文件:
./manage.py collectstatic
Run Code Online (Sandbox Code Playgroud)
祝你好运!
| 归档时间: |
|
| 查看次数: |
2493 次 |
| 最近记录: |