django在非debug下不通过nginx访问静态文件

31 篇文章 2 订阅
9 篇文章 0 订阅

1. settings.py里面加上如下配置

STATIC_URL = '/static/'

if not DEBUG:
    STATIC_ROOT = os.path.join(BASE_DIR, 'static')
else:
    STATICFILES_DIRS = (
        os.path.join(BASE_DIR, 'static'),
    )

2. urls.py内加入如下配置

from django.views.static import serve
from django.conf import settings
from django.conf.urls import url

if not settings.DEBUG:
    urlpatterns.append(url(r'^static/(?P<path>.*)$', serve, {'document_root': settings.STATIC_ROOT}))

其他部分正常操作即可。

原理:
        django在debug模式下, 会基于静态文件生成对应的路由, 默认会加到路由表内, 但是非debug模式下不会自动添加, 因为正式生产环境一般都是通过nginx+uwsgi或者其它方式去部署, 静态文件通常是通过其他手段去映射路由, 故默认非debug模式下不生成响应路由

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值