不同浏览器访问同URL表现异常及Firefox CSS缓存问题求助
问题排查与解决
项目背景
我开发了一个基于index.php与MySQL的简单网站,通过PHP读取本地HTML文件内容,实现数据库中页面数据的插入或更新,核心代码如下:
if (isset($_GET['insert'])) { $f=fopen($_GET['file'].'.html',"r"); $txt=fread($f,10000000); $str=$dbcls->escape_string($txt); $qry="INSERT INTO pages(id,page) VALUES (" . $_GET['insert'] . ",'" .$str ."');"; $dbcls->query_command($qry); fclose($f); }; if (isset($_GET['update'])) { $f=fopen($_GET['file'].'.html',"r"); $txt=fread($f,10000000); $str=$dbcls->escape_string($txt); $qry="UPDATE pages SET page='". $str . "' WHERE id=".$_GET['update']; $dbcls->query_command($qry); fclose($f); };
注:fread($f,10000000)为临时代码。
问题1:URL在Chrome/Edge中被识别为搜索请求
现象
调用以下URL时,Chrome和Edge会忽略localhost发起全网搜索,仅Firefox可正常执行ID为4的页面更新:
localhost/?update=4&file=page4_funzioni_di_raggruppamento&page=4
但调用参数更短的类似URL时,三款浏览器均能正常工作:
localhost/?update=2&file=page2_tracciabilita&page=2
解决方法
- 强制添加协议前缀:在URL开头加上
http://,即使用http://localhost/?update=4&file=page4_funzioni_di_raggruppamento&page=4,明确告知浏览器这是HTTP请求而非搜索关键词。 - 替换localhost为127.0.0.1:尝试使用
http://127.0.0.1/?update=4&file=page4_funzioni_di_raggruppamento&page=4,避免浏览器对localhost的解析歧义。
问题2:Firefox更新CSS后不重新加载
解决方法
- 添加动态参数:在CSS文件的引用链接后追加版本号或时间戳参数,让浏览器识别为新资源。示例:
<!-- 手动更新版本号 --> <link rel="stylesheet" href="style.css?v=1.1"> <!-- 用PHP生成动态时间戳,每次请求自动更新 --> <link rel="stylesheet" href="style.css?v=<?php echo time(); ?>"> - 手动强制刷新:在Firefox中按
Ctrl+F5(Windows)或Cmd+Shift+R(Mac),绕过缓存强制重新加载所有资源。 - 临时关闭缓存:在地址栏输入
about:config,修改browser.cache.disk.enable或browser.cache.memory.enable为false关闭缓存(仅适合调试场景,不推荐长期使用)。
内容的提问来源于stack exchange,提问作者San Pei
相关产品推荐
相关产品推荐

