CSS文件返回304状态码的原因有以下几个:
1. 浏览器缓存了该CSS文件。浏览器会缓存已经访问过的CSS文件,当再次请求同一个文件时,浏览器会先检查缓存,如果缓存版本没有变化,就会返回304状态码告知服务器我还用得着最新文件,使用缓存的就行。要解决这个问题,可以在链接中添加版本参数,比如 style.css?v=2 ,让浏览器认为这是一个新文件。
2. 服务器配置了Incorrect caching headers。如果服务器错误的配置了永久的缓存头信息,浏览器就会长期缓存CSS文件并始终返回304。这时需要服务器配置正确的缓存头信息,比如:
Cache-Control: max-age=86400 // 缓存1天
Expires: Wed, 21 Oct 2020 07:28:00 GMT
3. 文件没有更新。如果CSS文件实际没有更新过,那么浏览器请求时会发现文件没有变化,返回304状态码。这个是正常情况,不需要处理。
4. 强制刷新缓存。浏览器默认会缓存CSS文件,如果文件没有实际变化,需要强制刷新缓存才会拉取新的文件。这时可以按Ctrl+F5(Windows)或Command+R(Mac)进行强制刷新。
5. 终端网络异常。如果客户端网络异常,比如临时断网,浏览器的请求发不出去,默认会返回304状态码。这属于非服务端控制的问题,网络恢复正常后会自动解决。
综上,导致CSS文件返回304状态码的主要原因是浏览器缓存和服务器缓存头配置不当。在排除网络异常的情况下,可以通过版本控制、配置正确的缓存头信息和强制刷新缓存等方式解决这个问题。