【问题标题】:Remove query strings from static resources on Wordpress site从 Wordpress 站点上的静态资源中删除查询字符串
【发布时间】:2016-09-29 02:22:25
【问题描述】:

我在从我的 Wordpress 网站上的静态资源中删除查询字符串时遇到了困难。我已经尝试了似乎对大多数人都有效的常用 function.php 代码,但我的 Pingdom 分析没有改变。

如果这会影响事情,我已经安装了 WordFence 和 Cache Enabler。

这是我正在使用的代码:

function _remove_script_version( $src ){
    $parts = explode( '?ver', $src );
        return $parts[0];
}
add_filter( 'script_loader_src', '_remove_script_version', 15, 1 ); 
add_filter( 'style_loader_src', '_remove_script_version', 15, 1 ); 

remove_action( 'wp_head', 'print_emoji_detection_script', 7 ); 
remove_action( 'wp_print_styles', 'print_emoji_styles' ); 

我的 .htaccess 中也有这个来帮助缓存:

<IfModule mod_expires.c>
# Enable expirations
ExpiresActive On 

# Default directive
ExpiresDefault "access plus 1 month"

# favicon
ExpiresByType image/x-icon "access plus 1 year”

# images
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"

# css
ExpiresByType text/css "access plus 1 week”

# javascript
ExpiresByType application/javascript "access plus 1 week"
</IfModule>

<ifModule mod_headers.c>
  <filesMatch ".(css|jpg|jpeg|png|gif|swf|svg|js|ico)$">
    Header set Cache-Control "max-age=2592000, public"
  </filesMatch>
  <filesMatch ".(x?html?|php)$">
    Header set Cache-Control "private, must-revalidate"
  </filesMatch>
</ifModule>

<IfModule mod_deflate.c>
  # Compress HTML, CSS, JavaScript, Text, XML and fonts
  AddOutputFilterByType DEFLATE application/javascript
  AddOutputFilterByType DEFLATE application/json
  AddOutputFilterByType DEFLATE application/atom+xml
  AddOutputFilterByType DEFLATE application/rdf+xml
  AddOutputFilterByType DEFLATE application/rss+xml
  AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
  AddOutputFilterByType DEFLATE application/x-font
  AddOutputFilterByType DEFLATE application/x-font-opentype
  AddOutputFilterByType DEFLATE application/x-font-otf
  AddOutputFilterByType DEFLATE application/x-font-truetype
  AddOutputFilterByType DEFLATE application/x-font-ttf
  AddOutputFilterByType DEFLATE application/x-font-woff
  AddOutputFilterByType DEFLATE application/x-javascript
  AddOutputFilterByType DEFLATE application/xhtml+xml
  AddOutputFilterByType DEFLATE application/xml
  AddOutputFilterByType DEFLATE font/opentype
  AddOutputFilterByType DEFLATE font/otf
  AddOutputFilterByType DEFLATE font/truetype
  AddOutputFilterByType DEFLATE font/ttf
  AddOutputFilterByType DEFLATE image/svg+xml
  AddOutputFilterByType DEFLATE image/x-icon
  AddOutputFilterByType DEFLATE text/css
  AddOutputFilterByType DEFLATE text/html
  AddOutputFilterByType DEFLATE text/javascript
  AddOutputFilterByType DEFLATE text/plain
  AddOutputFilterByType DEFLATE text/xml
</IfModule>

【问题讨论】:

  • 查看源代码时的外观如何?我敢打赌该文件正在被缓存。更改页面上的其他内容以确保即使您看到的是最新版本。
  • 在带有查询字符串的站点列表的 URL 中键入仍然会显示有效链接。对于 URL 中有 ?ver= 的网站,我已经禁用了 wordfence 上的缓存,之后我刷新了缓存。但没有运气。

标签: php wordpress .htaccess caching


【解决方案1】:

您的 PHP 工作正常。我只是在登台服务器上运行它,它完美地剥离了版本和表情符号脚本。

除此之外,几乎可以肯定是缓存问题。

您的 .htaccess 不应该与它有任何关系,因为问题在于 WordPress 发出的请求,而不是需要更新的静态资产本身。

我会进入缓存启动器的设置页面并点击“保存”按钮。根据他们的文档,这应该会清除所有当前缓存并解决您的问题。

https://www.keycdn.com/support/wordpress-cache-enabler-plugin/

  • 干杯!

【讨论】:

  • 非常感谢您的工作!我应该知道是那个插件!一个问题:你是如何在登台服务器上运行它的?
  • 我有一个 Digital Ocean 液滴,用于在将客户网站上线之前对其进行展示。我所做的只是建立一个开发站点,看看您的代码是否有效,以及 Pingdom 是否接受了更改。如果您有兴趣设置一个临时服务器来玩,请查看:serverpilot.io/community/articles/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-20
  • 1970-01-01
  • 1970-01-01
  • 2015-11-28
  • 2019-05-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多