我有一个WordPress网站,我试图用W3总缓存缩小。它运行在Ubuntu 12.04的nginx上。
- 我在手动缩小模式
- 在最小化设置中,我有
Rewrite URL structure
选项OFF。这两种方法都行不通,但是这种方法需要更少的nginx配置。
当我加载站点时,它告诉WP从以下路径加载:
/wp-content/plugins/w3-total-cache/pub/minify.php?file=5fe99/default.include-body.baf22c.js
同样,如果我打开Rewrite URL structure
,该路径将是:/wp-content/cache/minify/000000/5fe99/default.include-body.baf22c.js
该文件不存在,如果你试图去它,它是404。
在目录中,我有:
~/public_html/wp-content/cache/minify/000000/5fe99$ ls -lah
drwxrwxrwx 2 www-data www-data 4.0K Jun 26 08:51 .
drwxrwxrwx 3 www-data www-data 4.0K Jun 26 08:51 ..
-rw-r--r-- 1 www-data www-data 13 Jun 26 08:51 default.include-body.js.id
-rwxrwxrwx 1 www-data www-data 13 Jun 26 08:23 default.include.css.id.old
其他可能的解决方案:
- 我试过递归地在整个缓存目录上做
chmod 777
,但它只是永远不会创建这个文件,也不会报告错误。 - 我已经成功地安装和使用yui-compressor和Oracle Java,但是文件仍然没有被创建。所以我知道这不是一个JSMin的问题。
本地nginx.conf文件的内容:
当Rewrite URL structure
是OFF时,这是所有的请求:
# BEGIN W3TC Minify cache
location ~ /home/MY_HOME_DIR/public_html/wp-content/cache/minify.*'.js$ {
types {}
default_type application/x-javascript;
expires modified 31536000s;
add_header Vary "Accept-Encoding";
add_header Pragma "public";
add_header Cache-Control "max-age=31536000, public";
}
location ~ /home/MY_HOME_DIR/public_html/wp-content/cache/minify.*'.css$ {
types {}
default_type text/css;
expires modified 31536000s;
add_header Vary "Accept-Encoding";
add_header Pragma "public";
add_header Cache-Control "max-age=31536000, public";
}
location ~ /home/MY_HOME_DIR/public_html/wp-content/cache/minify.*js'.gzip$ {
gzip off;
types {}
default_type application/x-javascript;
expires modified 31536000s;
add_header Vary "Accept-Encoding";
add_header Pragma "public";
add_header Cache-Control "max-age=31536000, public";
add_header Content-Encoding gzip;
}
location ~ /home/MY_HOME_DIR/public_html/wp-content/cache/minify.*css'.gzip$ {
gzip off;
types {}
default_type text/css;
expires modified 31536000s;
add_header Vary "Accept-Encoding";
add_header Pragma "public";
add_header Cache-Control "max-age=31536000, public";
add_header Content-Encoding gzip;
}
# END W3TC Minify cache
另一个错误:
同时,我也得到这个错误:
Recently an error occurred while creating the CSS / JS minify cache: A group configuration for "include-body" was not set.
插件作者曾将此报告为频繁的误报,但那是两年前的事了。我不确定这是什么意思,关于它没有太多好的信息。
所以…有没有任何人在nginx上使用W3 Total Cache进行文件缩小?谢谢!
我已经通过确保:
部分解决了这个问题:1) nginx.conf
文件被更新到最后的选项选项。
这意味着,每次更改缩小选项时,他都必须去
http://www.domain.tld/wp-admin/admin.php?page=w3tc_install
并复制nginx示例配置并覆盖当前的nginx.conf
2) Nginx的新配置被重新加载或Nginx重新启动:
nginx -s reload
或
service nginx restart
3)取消W3TC最小化页面中的"重写URL结构"选项。
这将使生成的页面性能稍差,但我还没有找到一个真正的解决方案,适用于我所有的网站。