You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux环境下Django Admin变更视图不生效问题排查求助

排查Django模板修改Linux环境不生效的问题

1. 核对模板路径与大小写

Linux文件系统区分大小写,Windows不区分,务必确认:

  • 模板文件/目录的大小写和代码中引用的完全匹配(比如代码里写admin/model/change_form.html,Linux下不能是Admin/Model/Change_Form.html)
  • 检查settings.py中TEMPLATES配置的DIRS和APP_DIRS,确保Linux环境下目标模板目录被正确纳入搜索路径,避免相对路径在部署环境下失效

2. 清理Django模板缓存

生产环境下Django默认开启模板缓存,修改后未清理会持续使用旧版本:

  • 执行命令清理Django内置缓存:python manage.py clearcache
  • 若使用Redis、Memcached等外部缓存服务,直接重启服务或手动清空对应缓存库
  • 临时切换非缓存模板加载器测试(测试后改回生产配置):
    TEMPLATES = [
        {
            # 保留原有其他配置
            'OPTIONS': {
                'loaders': [
                    'django.template.loaders.filesystem.Loader',
                    'django.template.loaders.app_directories.Loader',
                ],
                # 注释掉所有'cached_loaders'相关配置
            },
        },
    ]
    

3. 验证collectstatic执行情况

  • 检查collectstatic执行时是否有报错,确认静态资源(含模板引用的CSS/JS)已同步到STATIC_ROOT目录,且Nginx/Gunicorn进程对该目录有读取权限
  • 注意:app目录下的templates文件不会被collectstatic处理,需确认对应app已加入INSTALLED_APPS,且模板路径未被其他优先级更高的模板覆盖

4. 检查Gunicorn运行权限与代码目录

  • 确认Gunicorn运行用户(如www-data)对模板文件有读取权限,执行ls -l查看文件所有者和权限配置
  • 排查是否因虚拟环境未正确激活、代码目录为镜像挂载(修改的本地文件未同步到镜像)等导致Gunicorn加载旧代码

5. 直接检查页面源码

在Linux服务器上用curl请求目标页面,查看返回的HTML源码中是否包含新增按钮的代码,排除前端样式差异导致按钮被隐藏的可能

内容的提问来源于stack exchange,提问作者Akrej

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 23:01:20