Django 当debug调为False出现静态文件404问题的解决

关于DEBUG, 简单的说,把`` DEBUG`` 设置成`` True`` 相当于告诉Django你的网站只会被可信任的开发人员使用。 Internet里充满了不可信赖的事物,当你准备部署你的应用时,首要的事情就是把`` DEBUG`` 设置为`` False`` 。

言归正传, 当DEBUG为True时django会默认帮我们处理静态文件,而为False的话我们需要自己完成静态文件的映射, 同时也需要自己完成404等错误页面的处理.

我的操作如下:

在主目录下的urls.py中增加静态文件的路径配置及对应错误视图处理:

from django.conf import settings
from django.views import static


urlpatterns = [
    ...
    # 配置静态文件的映射(在settings中我的静态文件配置使用的是STATICFILES_DIRS
    url(r'^static/(?P<path>.*)$', static.serve,
        {'document_root': settings.STATICFILES_DIRS}, name='static'),
]

# 用来添加页面错误处理的视图
handler403 = page_permission_denied
handler404 = page_not_found
handler500 = page_inter_error

具体处理视图需要你在对应的视图文件模块中完成哦. 

要将 Django 项目中的静态文件发布到生产环境,可以按照以下步骤进行操作: 1. 在项目的 settings.py 文件中设置静态文件目录: ```python STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static"), ] ``` 这里将项目根目录下的 static 目录作为静态文件的目录,也可以根据需要设置其他目录。 2. 在项目的 urls.py 文件中配置静态文件 URL: ```python from django.conf.urls.static import static from django.conf import settings urlpatterns = [ # ... 其他 URL 配置 ... ] urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) ``` 这里将静态文件 URL 设置为 `/static/`,将静态文件目录设置为 settings.py 文件中的 `STATICFILES_DIRS` 配置项。 3. 收集静态文件: 在项目根目录下执行以下命令: ```sh python manage.py collectstatic ``` 这将会把所有静态文件收集到一个指定的目录中,该目录由 `STATIC_ROOT` 配置项指定。 4. 配置 Web 服务器: 根据不同的 Web 服务器,需要配置不同的选项来将静态文件发布到生产环境中。例如,在使用 Nginx 作为 Web 服务器时,可以通过以下配置来指定静态文件的目录: ```nginx location /static/ { alias /path/to/static/; } ``` 这里将 `/path/to/static` 目录作为静态文件的目录。 注意:在进行生产环境部署时,需要将 `DEBUG` 配置项设置为 `False`,以关闭 Django 的调试模式。同时,也要确保静态文件目录和 URL 的配置正确无误。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值