304状态码是HTTP协议中的一个正常响应,表示客户端缓存的资源仍然有效,服务器无需重新传输内容。虽然这不是真正的错误,但在某些情况下你可能希望调整或避免304响应。
当客户端(浏览器)发送带有If-Modified-Since
或If-None-Match
头的请求时,如果服务器判断资源未修改,就会返回304状态码。
Ctrl+F5
(Windows/Linux)或Cmd+Shift+R
(Mac)进行硬刷新location / {
add_header Cache-Control "no-cache, no-store, must-revalidate";
add_header Pragma "no-cache";
add_header Expires "0";
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires 0;
add_header Cache-Control "no-cache, no-store, must-revalidate";
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires 1h;
add_header Cache-Control "public";
}
在引用静态资源时添加版本号或时间戳:
<link rel="stylesheet" href="style.css?v=1.0.1">
<script src="app.js?t=20230101"></script>
在开发环境中,可以完全禁用缓存:
server {
# ...
sendfile off;
etag off;
if_modified_since off;
add_header Last-Modified "";
}
如果你有特定的使用场景或遇到特殊问题,可以提供更多细节,我可以给出更有针对性的建议。