Nginx+Chrome 修改js文件不生效(或者报错)的问题

背景
Nginx服务器开发项目+Chrome浏览器调试,修改项目js文件后刷新页面,没有生效,并且报错(显示js语法错误)

探寻过程
虽然大家可能会觉得看别人的探寻过程并不重要,毕竟只要解决问题了就好。但是我个人觉得还是记录一下自己的解决思路,及踩过了哪些坑会更有味道,荆棘丛生的道路走起来才会更加印象深刻。。

  1. 由于我用的是TP框架,所以第一步自然而然就想到清空TP缓存,于是删了Runtime下的所有东西,刷新,失败。。
  2. 查资料,看到有人说设置TP的TMPL_CACHE_ON为false,让每次都重新编译,试了下,也失败。。
  3. 浏览器问题?我换了火狐浏览器刷新,仍然失败。。
  4. 换回Chrome,索性把js的内容全删了,再强制刷新(清空缓存并硬性重新加载),js的内容有变化,显示一些其他js文件里的内容,但是并不是空文件(这个有点阻碍视听了,一时迷惑不知道问题在哪了)。
  5. 该刷新的都刷新了,该清的缓存都清了,修改的内容还是没生效。但是至少发现,每次更改js文件,确实内容是有变动了。那么,肯定在TP项目和浏览器之外的某个地方,这个文件被缓存了,或者说被影响了。于是想到了Nginx,Nginx的缓存问题?于是上网查资料,搜索如何清理Nginx缓存。然后看到了曙光[https://blog.csdn.net/zengmingen/article/details/79958692]。
  6. nginx.conf的sendfile设为off,刷新Chrome,还是没生效。换个浏览器火狐,刷新,成功了!!!那么,Chrome浏览器要强制刷新才行?选择“清空缓存并硬性重新加载”,报错信息不见了,内容正常显示!问题解决!!
  7. 总结一下解决方法就是Nginx sendfile设为off,然后“清空缓存并硬性重新加载”Chrome。

解决方法

  1. Nginx配置nginx.conf 设置sendfile为off(默认为on)
  2. 重启Nginx
  3. 右键点击Chrome浏览器刷新健选择“清空缓存并硬性重新加载”(对于Chrome浏览器这一步很关键,普通刷新也不会生效。其他浏览器如火狐,普通刷新就行)
  4. 发现更改的js文件生效了,一切都正常运行了!!

最后问题的解决也挺靠运气的,要是搜索到了那篇文章没有换个浏览器测试,说不定还是没有找到问题在哪,换了个浏览器测试成功了要是没有强制刷新Chrome,也有可能还是找不到原因!所以说还是感谢上面链接的作者提供的清除Nginx缓存方法,也感谢自己一直测试没有想着放弃!
在网上看到了很多提到这个问题而没有解决的同学,希望可以帮助到你们。。

ps:后来又去网上找了Nginx sendfile的配置说明[https://blog.csdn.net/u011363729/article/details/70808585]

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值