使用本地IP访问服务器时静态资源加载失败,如何无需切换HTTPS解决?
解决办法
问题核心是浏览器自动将请求升级为HTTPS,但你的服务器仅支持HTTP,导致资源请求协议不匹配进而返回404。以下是几种无需切换到HTTPS的解决方式:
修改资源引用为HTTP绝对路径
在EJS文件里给资源链接加上http://前缀,明确指定使用HTTP协议请求资源:<link rel="stylesheet" href="http://192.168.1.6/css/auth.css" /> <script src="http://192.168.1.6/js/auth.js"></script>这样无论页面当前使用什么协议,资源都会通过HTTP请求,匹配你的服务器配置。
清除浏览器HTTPS强制跳转缓存
如果浏览器之前访问过该IP的HTTPS版本,可能缓存了HSTS规则,导致自动跳转HTTPS。可以:- 打开浏览器设置,找到隐私与安全选项,清除对应IP(192.168.1.6)的HSTS缓存;
- 用浏览器的隐私/无痕模式打开页面测试,无痕模式不会加载本地缓存的HSTS规则。
服务器端添加响应头阻止HTTPS升级
如果你用的是Express框架,在服务器代码中添加以下中间件,通过响应头告知浏览器不要强制使用HTTPS:app.use((req, res, next) => { res.setHeader('Strict-Transport-Security', 'max-age=0'); next(); });这个配置会清除浏览器中已有的HSTS缓存,阻止后续自动跳转HTTPS。
内容的提问来源于stack exchange,提问作者كورة لايت_TV
相关产品推荐
相关产品推荐

