django在生产环境下admin样式丢失的解决记录

弄了一个django的后台管理数据,但是admin的样式在生产环境下就是丢失,按f12后各种提示:

什么strict MIME type checking is enabled.错误等等。

什么提示404错误。

网上搜索解决方案一大堆,就是不得要领。

由于不想弄的太复杂,后端的服务器直接弄的uwsgi,思索半天也不知道该如何处理那个404,按照网上的说法,collectstatic也弄,uwsgi里面的static-map也设置了,但是仍然提示404。

由于是反向代理,也没办法从浏览器中直接访问地址来解决。

突然想到可以用 curl [URL] 命令来本地访问查看地址,于是尝试了下发现是前缀设置错误。

uwsgi这里要注意设置的前缀与apache或者nginx代理里面的前缀要保持一致,也最好能够与settings厘米的,否则就会出现404错误。

  uwsgi.ini

 settings.py

 000-default.conf

<think>我们正在解决Django项目部署在IIS后Admin管理界面样式丢失的问题。根据引用内容,我们可以得知静态文件在IIS上部署时可能会出现加载问题。以下是修复步骤: 1. **配置静态文件路径**:确保在Django的`settings.py`中正确设置静态文件目录。例如: ```python STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'static') ``` 2. **收集静态文件**:运行`python manage.py collectstatic`命令,将Admin所需的静态文件收集到`STATIC_ROOT`目录中。 3. **配置IIS处理静态文件**: - 在IIS中,为静态文件(如CSS、JS)添加一个处理程序映射。根据引用[3],可以在静态文件目录(如`/var/www/test5/static/`)下创建一个`web.config`文件,内容如下: ```xml <?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <!-- 此配置覆盖FastCGI处理程序,让IIS提供静态文件 --> <handlers> <clear/> <add name="StaticFile" path="*" verb="*" modules="StaticFileModule" resourceType="File" requireAccess="Read" /> </handlers> </system.webServer> </configuration> ``` - 注意:根据实际部署路径修改`alias`(在Nginx中)或IIS中的物理路径。在IIS中,可以通过“处理程序映射”设置,确保静态文件由StaticFileModule处理。 4. **处理中文路径问题(如果适用)**:引用[4]提到IIS服务器解析不了中文路径,可以运行以下命令修复: ```cmd reg add HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\w3svc\Parameters /v FastCGIUtf8ServerVariables /t REG_MULTI_SZ /d REQUEST_URI\0PATH_INFO ``` 然后重启IIS服务器。 5. **重启IIS**:在IIS管理器中重启站点或应用程序池,使配置生效。 通过以上步骤,应该能够解决Admin界面CSS样式丢失的问题。如果问题仍然存在,请检查IIS中静态文件目录的权限,确保IIS用户(如IIS_IUSRS)有读取权限。 §§相关问题§§ 1. 如何配置Django的静态文件设置以支持生产环境部署? 2. 在IIS上部署Django应用时,如何处理静态文件以外的其他常见问题? 3. 除了IIS,还有哪些服务器可以部署Django应用?它们各自有什么优势?</think>### Django部署在IIS后Admin界面CSS样式丢失的修复方案 当Django部署在IIS后出现Admin界面CSS样式丢失的问题,本质是静态文件加载失败。以下是逐步解决方案: #### 1. **配置Django静态文件** 在`settings.py`中添加配置: ```python STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'static') # 指定静态文件收集目录 ``` #### 2. **收集静态文件** 运行命令收集Admin所需静态文件: ```bash python manage.py collectstatic ``` 所有静态文件(包括Admin样式)将保存到`STATIC_ROOT`目录(如`/var/www/project/static/`)。 #### 3. **配置IIS处理静态文件(关键步骤)** 在静态文件目录(如`/var/www/project/static/`)中创建`web.config`文件,内容如下[^3]: ```xml <?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <handlers> <clear/> <!-- 强制IIS直接处理静态文件 --> <add name="StaticFile" path="*" verb="*" modules="StaticFileModule" resourceType="File" requireAccess="Read" /> </handlers> </system.webServer> </configuration> ``` #### 4. **修改IIS应用程序池设置** - 应用程序池 → 高级设置 → 启用32位应用程序 → 设为`True` - 标识 → 选择具有文件读取权限的账户(如`ApplicationPoolIdentity`) #### 5. **处理中文路径问题(可选)** 若路径含中文,执行注册表命令并重启IIS[^4]: ```cmd reg add HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\w3svc\Parameters /v FastCGIUtf8ServerVariables /t REG_MULTI_SZ /d REQUEST_URI\0PATH_INFO iisreset /restart ``` #### 6. **验证结果** 访问Admin页面(如`http://yoursite/admin`),检查: - 浏览器开发者工具(F12)中静态文件(.css/.js)是否返回200状态码 - 静态文件URL路径是否正确(如`http://yoursite/static/admin/css/base.css`) > **原理说明**:IIS默认不处理静态文件,需通过`web.config`显式声明由`StaticFileModule`处理,否则请求会错误地路由到Django应用[^2][^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值