部署在IIS上的Django项目静态文件无法加载,求配置修改方案
解决IIS部署Django时静态文件加载失败的问题
一、调整web.config,让IIS优先处理静态文件
你的当前配置把所有请求都交给FastCGI处理,包括静态资源,这是核心问题。需要修改handler规则,让IIS先接管静态文件请求:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <appSettings> <add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()" /> <add key="PYTHONPATH" value="C:\inetpub\wwwroot\pax_web_server_app" /> <add key="DJANGO_SETTINGS_MODULE" value="pax_web_server_app.settings" /> </appSettings> <system.webServer> <handlers> <!-- 优先处理static目录下的请求,用IIS静态文件模块直接返回 --> <add name="StaticFiles" path="static/*" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Read" /> <!-- 剩余请求再交给Django的FastCGI处理 --> <add name="paxsite" path="*" verb="*" modules="FastCgiModule" scriptProcessor="C:\Python311\python.exe|C:\Python311\Lib\site-packages\wfastcgi.py" resourceType="Unspecified" /> </handlers> <staticContent> <!-- 补全常见静态文件的MIME类型,避免浏览器无法识别 --> <mimeMap fileExtension=".css" mimeType="text/css" /> <mimeMap fileExtension=".js" mimeType="application/javascript" /> <mimeMap fileExtension=".png" mimeType="image/png" /> <mimeMap fileExtension=".jpg" mimeType="image/jpeg" /> <mimeMap fileExtension=".gif" mimeType="image/gif" /> <!-- 修正原错误的.tab文件MIME类型,根据实际文件类型调整 --> <mimeMap fileExtension=".tab" mimeType="text/plain" /> </staticContent> </system.webServer> </configuration>
关键修改点
- 新增
StaticFileshandler,优先级高于Django的FastCGI规则,确保static/*路径的请求直接由IIS处理,不走WSGI流程。 - 修复原配置中错误的
.tabMIME类型,同时补全CSS、JS、图片等常用静态资源的MIME映射,避免因类型不匹配导致加载失败。
二、确认Django静态文件的配置与收集
- 检查项目
settings.py中的静态文件配置:
# settings.py STATIC_URL = '/static/' # 指定静态文件收集后的存放目录,必须与项目目录对应 STATIC_ROOT = os.path.join(BASE_DIR, 'static')
- 执行静态文件收集命令:
打开命令行切换到项目根目录,运行:
python manage.py collectstatic
该命令会将所有Django应用、第三方库中的静态文件统一复制到STATIC_ROOT指定的static文件夹,确保IIS能访问到完整的静态资源。
三、IIS站点权限与功能检查
- 确保IIS应用程序池的身份对
static目录拥有读取权限,否则IIS无法读取静态文件。 - 检查服务器是否已安装IIS的静态内容功能(可在服务器管理器的角色功能中查看,未安装则需添加)。
- 若静态文件不在项目根目录,需在IIS站点中添加虚拟目录指向实际路径,并同步修改
settings.py中的STATIC_URL和STATIC_ROOT。
内容的提问来源于stack exchange,提问作者Ufuk Sipor
相关产品推荐
相关产品推荐

