React项目部署GoDaddy后iOS Safari报MIME类型错误无法执行JS脚本
可行解决方案
该错误核心是GoDaddy服务器对JS文件返回的MIME类型不符合Safari的严格校验规则,Chrome的MIME校验规则更宽松因此不会触发报错,以下按优先级排列可落地的解决步骤:
- 第一步:配置站点根目录的
.htaccess文件(GoDaddy Linux主机默认支持,无需额外开通权限),添加以下规则强制指定静态资源的正确MIME类型,同时修复HTTPS重定向后的路径匹配问题:
# 强制指定正确的静态资源MIME类型 AddType text/javascript .js AddType text/css .css AddType application/json .json # 适配React单页应用路由规则 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.html$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule . /index.html [L] </IfModule>
- 第二步:修改React项目的
package.json配置,添加homepage字段指定你的完整站点域名,示例如下:
"homepage": "https://你的完整域名"
配置完成后重新执行npm run build打包,把新的构建产物全量上传到GoDaddy主机覆盖旧文件。
- 第三步:清除GoDaddy主机的缓存、Safari浏览器的历史记录与网站数据后重新测试,部分情况下CDN缓存会导致旧的MIME类型配置未及时生效。
小概率适配方案:如果上述操作都无效,可以手动修改
public/index.html中所有script标签,显式添加type="text/javascript"属性,部分老旧Safari版本对缺省type的JS资源校验逻辑更严格。
内容的提问来源于stack exchange,提问作者Doublers Kay
相关产品推荐
相关产品推荐

