【问题标题】:WAMP + PHP CSS Include wont update with new stylesWAMP + PHP CSS Include 不会更新为新样式
【发布时间】:2013-11-02 09:18:07
【问题描述】:

我被难住了。我正在使用包含来导入样式表。如果我向样式表添加新样式,生成的页面将不会显示任何新的 CSS。如果我更改旧的 css 规则,它将显示更改。我以为它可能是某种缓存文件,但我已经清除了所有测试浏览器中的缓存,问题仍然存在。

起初我认为这是一个 WAMP 问题,但是当我将它全部实时移动时,问题就发生了,所以现在我认为我在包含问题时做错了......

<link rel="stylesheet" type="text/css" href="css/foundation.css">
<!-- Included Custom Overides -->
<link rel="stylesheet" type="text/css" href="css/Custon_Foundation_Overides.css">
<!-- Supersizer CSS -->

这只是我的包含...

<?php require("Includes/HEADER.php"); ?>

同样,所有旧的 CSS 都可以正常工作,只是任何样式表中的任何新添加都不会显示。

谢谢

【问题讨论】:

  • 听起来像是浏览器缓存问题,您确定查看更改时浏览器缓存已清除吗?

标签: php server-side-includes


【解决方案1】:
<link rel="stylesheet" type="text/css" href="css/Custon_Foundation_Overides.css">

也许“Custon_Foundation_Overides.css”是一个错字,而您的意思是“Custom_Foundation_Overrides.css”,或者您可能需要上传具有正确大写字母的文件。

【讨论】:

  • 虽然这是一个错字,但这不是问题,因为我只是复制并粘贴了文件名。不过很好。
【解决方案2】:

听起来像是浏览器缓存问题。在保持良好缓存实践的同时解决此问题的一种简单方法是将文件生成时间作为查询变量传递给文件。

<link rel="stylesheet" type="text/css" href="css/foundation.css?ver=<?php echo filemtime('css/foundation.css');?>">

这将生成如下字符串:

<link rel="stylesheet" type="text/css" href="css/foundation.css?ver=1382564850">

这样,当您更新文件时,您的浏览器会认为它是一个新文件并缓存它,但只要文件保持不变,它就会使用相同的名称并维护浏览器缓存。

【讨论】:

  • 我用一个我没有用来预览的浏览器打开了文件,并且 css 加载正常,所以这是某种浏览器缓存问题,但是你发布的字符串给我留下了这个错误......致命错误:在 C:\wamp\www\VE_2014\Includes\HEADER.php 中调用未定义函数 filetime() 第 20 行调用堆栈#TimeMemoryFunctionLocation 10.0005679360{main}()..\index.php:0 20.0006683776require(' C:\wamp\www\VE_2014\Includes\HEADER.php')..\index.php:3
  • @DavidFleury 你的错误没有出现,但我猜这是一个找不到文件。您需要输入 css 文件的绝对文件位置,目前我使用的是相对路径。
  • 抱歉,函数名有错别字,已更正。应该是 filemtime() 我错过了“m”
猜你喜欢
  • 2020-08-11
  • 2018-08-27
  • 1970-01-01
  • 1970-01-01
  • 2022-06-13
  • 1970-01-01
  • 1970-01-01
  • 2011-02-11
  • 2019-12-03
相关资源
最近更新 更多