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

回到顶部