JS/CSS文件不刷新(可能是服务器端)
我正在处理JavaScript文件。我的第一批编辑工作正常,但现在当我进行更改并重新加载我的页面时,我收到浏览器控制台错误SyntaxError: illegal character
,并且当我检查源代码时,我看到一个旧版本的文件带有一堆“最后。JS/CSS文件不刷新(可能是服务器端" title="服务器端">服务器端)
我一直在这个网站上工作一周或两周没有问题。然而,有一天我用CSS文件也遇到类似的问题。我想我通过重命名文件,刷新并命名回来了。它仍然不能正确刷新,显然这不是一个可行的开发方式。
我的环境
- 我开发在Windows 7
- 下的VirtualBox在CentOS 7网站我的网站代码中的共享文件夹。 (在Windows中,可由Centos访问)。
- Apache,PHP 7,MariaDB。
- TYPO3 8.7.3 CMS
- 我在我的Windows主机文件中定义的本地域中查看我的网站。
什么我(用Ctrl + F5多次)尝试
- 刷新页面。
- 直接查看JS文件。刷新。 (在mydomain/typo3conf/ext/myext/Resources/Public/js/file.js)
- 在file.js和refresh之后添加
?somerandomstring
。 - 使用“刷新所有缓存”清除我的CMS缓存。
- 重命名我的CMS .htaccess文件。在Centos中运行
/sbin/service httpd restart
。刷新JS文件。 - 在其他浏览器中打开JS文件。
- 在重新启动Centos并刷新时,我得到当前版本的文件。但是如果我再次编辑它,那么我得到同样的错误。
- 如果我撤销对我的文件的更改,然后它加载并正常运行。
我认为这排除了它是我的浏览器。我认为重命名.htaccess 应该排除它是CMS,但我没有知识是确定的。
那么,我接下来要检查什么?
编辑:
也注意到,如果我修改我的文件,以使其更短,它修剪旧文件复制到新文件的长度。
回答:
我有我的资产(CSS,JS,图像等)相同的问题。 唯一可行的(就我目前的知识而言),在网址旁边添加一个随机数:/main.js?someRandomNumber
。
这会强制浏览器重新加载文件并加载新代码。
要做到这一点,使用PHP这样的:
<script src=<?php echo '"main.js?' . rand() .'"'; ?>></script>
如果你找到一个更好的办法来做到这一点,请让我知道...
回答:
对我来说,这听起来像您的VBOX的问题建立。一般情况下,如果按Ctrl + F5,浏览器将重新加载所有脚本。
将随机查询字符串添加到脚本中是一个非常糟糕的主意,因为每次通过http访问它时,它都是一个新资源。这应该与校验或修改时间来完成(根据您的部署策略)
以下示例适用,如果你不每次部署项目时,将脚本上传
<script src="path/to/script.js?v=<?= filemtime($file); ?>"><script>
另一种方法是
<script src="path/to/script.js?v=<?= md5_file($file); ?>"></script>
这样,你的浏览器应该将其识别为一次的v值变化的新资源。
如果您通过http直接访问文件(例如curl)并返回错误版本的文件,您将面临与typo3无关的问题。我也怀疑它与Apache有关。
我想你必须在你的虚拟主机实例中安装guestadditions。此外,我会确保所有权限设置正确。
澄清:您访问的文件位于何处?如果您访问typo3中的某些生成/连接文件(例如typo3temp/compressor),则可能是问题,这些文件会保存在那里,但其源位于其他位置。
以上是 JS/CSS文件不刷新(可能是服务器端) 的全部内容, 来源链接: utcz.com/qa/266367.html