我正在努力让Matt Wilcox自适应图像与CakePHP一起使用而没有成功。 http://adaptive-images.com/
CakePHP附带了三个.htaccess文件。在/
中,/app/
中有一个,/app/webroot/
中有一个
我需要让这四个文件一起工作,以便将图像请求发送到我放在根目录中的文件adaptive-php。
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
# Adaptive-Images -----------------------------------------------------------------------------------
# Add any directories you wish to omit from the Adaptive-Images process on a new line, as follows:
# RewriteCond %{REQUEST_URI} !some-directory
# RewriteCond %{REQUEST_URI} !another-directory
RewriteCond %{REQUEST_URI} !assets
# Send any GIF, JPG, or PNG request that IS NOT stored inside one of the above directories
# to adaptive-images.php so we can select appropriately sized versions
RewriteRule \.(?:jpe?g|gif|png)$ adaptive-images.php
# END Adaptive-Images -------------------------------------------------------------------------------
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L]
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
我认为来自自适应图像的规则必须首先出现在其中一个文件中,并可能为最后一个规则添加[L]。但到目前为止我唯一能做到的就是打破图像/img/myimage.gif
的路径,以便Cake开始寻找ImgController。
Apache日志并没有给我任何有价值的东西。
有什么建议吗?
我修改后的/
- htaccess现在如下所示。 Cake给我一个关于缺少ImgController的错误,并且在自适应图像应该放入的ai-cache-folder中没有创建图像。
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_URI} !assets
RewriteRule \.(?:jpe?g|gif|png)$ adaptive-images.php
RewriteCond %{REQUEST_URI} !adaptive-images\.php [NC]
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
答案 0 :(得分:0)
好吧,即使它可能不是最佳解决方案,我也能使用它。
我只更改了/app/webroot
- 文件夹中的htaccess,如下所示
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_URI} !debug_kit
RewriteRule \.(?:jpe?g|gif|png)$ adaptive-images.php [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
并将adaptive -pid.php文件添加到app/webroot
。在Vendor目录中有自适应images.php文件可能更好,但至少它可以工作。
我在adaptive-images.php中做了两处修改
$cache_path = "app/tmp/cache/ai-cache";
$source_file = $document_root.'/app/webroot'.$requested_uri;