问题标签 [mod-expires]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
performance - Pagespeed 和 YSlow 不遵守对 Expires 标头的更改
我将以下代码添加到 htaccess 文件中:
但谷歌的 PageSpeed 和 Chrome 的 YSlow 插件并未反映这些变化。
根据上面的代码,有人可以解释为什么我继续收到 PageSpeed 和 YSlow 的过期标头的 F 级吗?更重要的是,为什么 Google 的 PageSpeed 显示定义的文件类型在 4 小时内过期,而不是在 htaccess 文件中定义的 1 个月?
这是我的响应标头:
drupal - 过期标头不起作用drupal
我在 .htaccess 文件中设置过期标头,如下所示
ExpiresActive On
ExpiresDefault A1209600
它适用于文档根目录中的所有文件,但我有一个单独的已安装驱动器,用作 drupal 文件系统(私有),我在其中存储我的 jcarousel 图像,对于这些图像,过期标头不起作用。
wordpress - W3C 验证器不加载实际源
我想使用 W3C 验证器来优化我的 Wordpress 博客。在主页上,它声称有 28 个错误。例如,其中之一如下:
第 28 行,第 53 列:省略了“元”的结束标记,但指定了 OMITTAG NO
所以我修复了它并点击了重新验证。尽管如此,验证者说,这个错误仍然存在。但是,如果我从我的网络浏览器查看浏览器源代码窗口,我可以看到可能更改已成功交付。如果我在 W3C 验证器选项中选中“显示源代码”并重新加载我的站点,我可以看到验证器使用的来自我站点的源代码已过时/没有更改。
那么有人能解释一下为什么 W3C 验证器无法识别我的更改吗?如果你不想自己看 - http://code-bude.net/是我博客的 URL。
wordpress - mod_expire 可能与 Wordpress 更新冲突吗?
我想使用 mod_expire 在用户浏览器中缓存我的 Wordpress 博客的内容,从而提高我在 YSlow 和 Google Pagespeed 的排名。所以我想使用如下配置。
但是,我现在提出了以下问题。如果插件代码中断并且插件开发人员发布更新怎么办?我将下载并将其安装到我的博客,但插件中损坏的 .js 文件已被用户的浏览器缓存。
在缓存时间到期之前,用户会无法查看我的页面,还是会自动从插件更新中获得新页面?
php - 调整大小图像的 PHP 隐藏 URL
我们缓存多种尺寸的图像。
图片信息:
- 原始网址:http ://www.example-store.com/images/some-image.jpg
- 宽度:120
- 身高:150
- 首选图像文件名:image-file-name.jpg
所以我们构建了以下图片缓存 URL:
http://cache.example.com/image/120x150/ksjdaflkj678687TYTGGGShjk78/image-file-name.jpg
当请求此 URL 时,http://cache.example.com/image/120x150/ksjdaflkj678687TYTGGGShjk78/image-file-name.jpg,这在幕后(htaccess 类型的东西)被重写为:http://cache。 example.com/image.php?height=120&width=150&originalUrlHashed=ksjdaflkj678687TYTGGGShjk78&preferredFileName=image-file-name.jpg
散列图像被解码,从原始位置下载,调整大小并物理保存在这里:/image/120x150/ksjdaflkj678687TYTGGGShjk78/image-file-name.jpg。为什么?因为在第二个请求中,文件物理存在于磁盘上并作为普通文件返回,然后我们可以使用 apache2 mod_expires 缓存,而不是在每次请求时下载和调整图像大小。
问题在于这样的远程图像 URL:
原始图像哈希为:
- eNptzbtOAzEQheGnoZwdr40JQkJIBIo0kI5y5cusM4pjWx4j5fFJICXt_x3pHMZoT4g8Rcp5CvWE0Qme3eTkcMaUq3cZhAdBJOFU7rT6en9FZR6MUXYD3vtH8LPR4Fcd4F4HFZ01q9MzzvjZOXFxeV_SC8fnt8sH7nuN32Esu5NLJHhtyzYzlbHcSPCjDvK1HgV3RRr3WpZ_0my7EHqSUVfMro3agG8IvwgbqxUkKtQ5wN8SrFJQ0tQk_gCey1fZ
这使得 URL 看起来像这样:
此 URL 的哈希部分超过 255 个字符,这会导致 Apache 错误 - https://serverfault.com/questions/120397/max-length-of-url-257-characters-for-mod-rewrite
编辑:只是补充一下 - 问题在于哈希的长度。使用 255 个字符以下的哈希,此解决方案完美运行。
这里有几个考虑:
- 缓存 URL 与调用它的服务器位于不同的服务器上。它们不共享数据库,因此原始 URL 必须包含在 URL 中。
- 我需要对 URL 进行哈希处理并使用哈希作为目录名称,以便我们可以将调整大小的文件物理保存到磁盘以供将来请求。
- 这意味着根据请求 - 它会神奇地创建文件并将其保存到磁盘。根据请求二,它只返回物理图像。
- 如果 cache.example.com 和调用 URL 的网站在同一个服务器上,并且可以共享一个数据库,那么我们可以将图像 URL 保存到一个表中并返回一个哈希或键或其他东西。不幸的是,这不是一个选择。
解决方案?
- 我能想到的唯一解决方案是以某种方式压缩 URL。但是,由于我需要(并且确实)对其进行 base64 编码以使其沿 URL 工作,因此这会增加额外的大小。
有没有人有任何想法?
我遇到的问题与这个问题非常相似。
apache - Apache: set max-age or expires in .htaccess for directory
I have a handful of directories with content which will never change.
Is it possible to create .htaccess file which tells the browser that anything in this directory and sub- directories can be cached for a very long time?
I would like to copy the same .htaccess file in each directory if possible.
If this is possible would you recommend max-age over expires or both?
apache - 如何在 cakephp 2 中添加标头过期
我正在研究 cakephp2 网站速度改进之一。
现在我需要设置一些标头过期和缓存内容。
但是在 cakephp 中,我必须在其中放置我的代码。
请建议任何不错的 htaccess 代码。
我试过了
但它不起作用,我也尝试了其他一些代码,但没有一个对我有用。是否缺少任何关键配置?
还有一件事,如果有任何其他技巧可以提高性能,那么请建议我。
.htaccess - ExpiresByType 不起作用但在.htaccess 中吗?
我对此感到相当困惑,并希望有人能够提供一些启示。
在我的 htaccess 文件中,我有:
但是,当我检查标题时,它似乎不起作用。
我得到“无存储,无缓存,必须重新验证,检查后 = 0,预检查 = 0”
但是,如果我使用此代码:
它确实拾取了缓存。 max-age=14400,必须重新验证
我错过了什么吗?一个用于服务器,一个用于浏览器?我的意思是,我更喜欢使用第一个,因为如果它们都相同,它会附带样板。
提前致谢!
php - htaccess 过期标头和压缩
经过长时间搜索和测试我的应用程序后,我确实将以下行添加到我的“htaccess”文件中,但是当我测试网站是否启用压缩时,它显示“否”并且对于过期标头,它似乎没有工作。请提供修复
apache - 利用浏览器缓存 - 修改 .htaccess 文件时出现内部服务器错误
我正在努力加快我的网站速度。在谷歌 PageSpeed Insights 我有 86 分,但我有问题Leverage browser caching
。在推荐中,我发现了这段.htaccess
代码:
但是当我将它插入我的.htaccess
文件时,我得到内部服务器错误(500)。
我的工作.htaccess
代码是这样的:
我做错了什么?