![使用 WAMP 作为本地服务器时显示过时的信息](https://linux22.com/image/591694/%E4%BD%BF%E7%94%A8%20WAMP%20%E4%BD%9C%E4%B8%BA%E6%9C%AC%E5%9C%B0%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%97%B6%E6%98%BE%E7%A4%BA%E8%BF%87%E6%97%B6%E7%9A%84%E4%BF%A1%E6%81%AF.png)
我正在运行 WAMP 作为我的网络中计算机的本地服务器。
问题是,当我尝试从这些计算机对数据库执行任何操作时,似乎这些操作都没有发生,尽管确实发生了。
我有一个名为的 mysql 表,person
其中有字段,id,lastname,name
当我尝试添加新字段person
或编辑其中一个字段时,一切似乎都很好,但是当我检查是否person
已添加/编辑时,似乎还没有,甚至当我检查数据库时,更改已经完成。
进一步挖掘后,我意识到当我通过访问我的系统时, http://localhost/system/
数据库的所有更改都会立即反映出来,但是当我通过 IP 地址访问系统时http://12.12.123.12/system/
,更新不会显示,直到我关闭网页或点击刷新大约 5 次。
httpd配置文件
ServerRoot "c:/wamp/bin/apache/apache2.2.21"
Listen 80
ServerName localhost:80
DocumentRoot "c:/wamp/www/"
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
<Directory "c:/wamp/www/">
Options Indexes FollowSymLinks
AllowOverride all
Order Allow,Deny
Allow from all
</Directory>
长话短说,数据库方面一切都正常,当我通过数据库查看我的页面时,localhost
一切都正常,问题是当我从 IP 地址访问它时
最后更新
我的应用程序有一个<iframe>
包含显示信息所需的所有表格的页面,结果发现是框架没有刷新,所以它显示了过时的信息。我不得不添加 2 行代码,这样它就不会缓存信息并始终显示当前信息。以下是我添加的内容:
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
答案1
如果您的数据库立即反映出更改,并且通过本地主机访问网站也立即反映出这些更改,但在外部访问时更改出现得很慢,那么我的第一反应是您需要检查缓存。
这可以帮助您开始了解 Apache 缓存:http://httpd.apache.org/docs/2.2/caching.html
如果你通过 Varnish 提供服务,那么它也是一个缓存和反向代理工具。此外,你的浏览器可能会缓存你,更不用说如果你正在使用标准的 Web 代理