【问题标题】:Apache caching javascript assets?Apache缓存javascript资产?
【发布时间】:2012-04-07 06:27:27
【问题描述】:

不久前,我遇到了 javascript 资产问题。当我对它们进行更改时,它们不会生效,并且文件将变为无效的 javascript(萤火虫引发错误和警告)。

我注意到我的更改没有出现,特殊字符被添加到文件末尾。再深入一点,我注意到特殊字符正是我编辑的字符数。

原码:

$(document).ready(function(){
     alert('what');
});

添加一行,应该是这样的:

$(document).ready(function(){
     alert('what');
     alert("what's going on?!);
});

像这样渲染:

$(document).ready(function(){
     alert('what');
});��������������������������

当我研究时,我发现修改 apache 配置的 /etc/httpd/conf/httpd.conf 并注释掉 EnableSendfile off 解决了这个问题。

然而……

现在问题又回来了,但是 apache 配置没有改变。

请帮忙。我目前的工作是重命名文件,查看新文件并重新命名;这让我非常恼火。

我正在开发一个 vagrant box,CentOS 6,PHP 5.3/apache 2 - 原始解决方案可以在这里找到:Shared folder in VirtualBox for Apache

不幸的是,这似乎不再有效。

【问题讨论】:

  • 您是否检查过 Windows 换行符等不可见字符?制表符/空格?
  • 是的,文件是干净的。只有新的更改会转换为这些特殊字符。
  • 你可以使用一些像<script type='application/javascript' src='somefile.js?v=somefileversion'></script>这样的缓存清除。但由于我对 apache 没有经验,您可能需要等待更好的建议。
  • Prusse - 缓存无效化不起作用,这似乎是提供文件的方式。

标签: javascript apache caching garbage


【解决方案1】:

通常当EnableSendfile On 导致损坏时,EnableMMAP 会导致类似问题。尝试关闭它。您提到您在 Vagrant 中使用 CentOS,但不是主机操作系统。可能是 Windows 吗?

【讨论】:

  • 你是我的英雄。这样就解决了!主机是 Mac OSX。
猜你喜欢
  • 1970-01-01
  • 2015-08-19
  • 1970-01-01
  • 1970-01-01
  • 2012-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-01
相关资源
最近更新 更多