网站能否直接提供Python脚本下载及下载报错问题排查
问题结论
网站完全支持直接提供.py格式的Python脚本供用户下载,不需要强制打包为zip等压缩格式。你遇到的下载失败问题和浏览器、前端代码无关,是服务器端的后缀解析规则配置错误导致的。
故障原因
从你提供的Apache错误日志可以直接定位根因:
[core:error] End of script output before headers: FEMCFHM_munger.py
你的Apache服务默认将.py后缀的文件交给mod_fcgid模块当做可执行CGI脚本解析运行,而不是作为普通静态文件读取返回。当你请求.py文件时,服务器会尝试执行这个脚本,但是普通Python脚本没有输出符合规范的HTTP响应头,所以直接抛出服务器错误。
同目录下csv文件可以正常下载,是因为服务器没有给csv后缀配置CGI解析规则,会直接作为静态文件返回,这也和你观察到的目录权限正常的现象吻合。
你贴出的前端拼接下载链接的代码没有逻辑问题,HTML的download属性对.py文件同样生效。
修复方案
- 进入你存放Python脚本的目录
nefin-temp/nefin_scripts/,在该目录下创建或编辑.htaccess文件,添加以下配置:# 移除.py文件的CGI处理器关联 RemoveHandler .py # 强制将.py文件标记为二进制流,触发浏览器下载行为 AddType application/octet-stream .py # 关闭当前目录的CGI执行权限,避免脚本被服务器运行 Options -ExecCGI - 重载Apache服务配置使规则生效。
- 测试访问.py文件的下载链接,确认可以正常触发下载即可。
如果你的站点是直接在Apache主配置文件里设置的.py解析规则,也可以直接修改主配置中对应站点的段,把上述规则加在脚本目录的Directory配置下,再重载服务。
内容的提问来源于stack exchange,提问作者xanabobana
相关产品推荐
相关产品推荐

