【发布时间】:2014-06-14 22:42:15
【问题描述】:
我一直在开发一个 CakePHP 应用程序,大部分 CSS / JS / 图像(图标)都位于 webroot 目录(/var/www/app/webroot/)中,但对于某些部分(Croogo)或其他应用程序的页面,我需要从不同的目录加载 CSS / JS / 图像,即 /var/www/app/views/themed/admin/webroot/。
现在我面临的问题是,当我渲染这些其他页面时,css / JS / images 请求返回 404 page not found 状态,因为这些请求是针对主 webroot 而不是我上面提到的不同目录。
有没有办法用 .htaccess 来处理这个问题,即 如果 url 包含这个模式 "/admin/"
例子:
应该在 /var/www/app/views/themed/admin/webroot/ 而不是 var/www/app/webroot/ 中查找 CSS / JS / img 文件??
如果没有,还有其他解决方法来处理这种情况吗?
以下是应用主目录的.htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L]
</IfModule>
以下是主webroot目录的.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>
CakePHP 代码
echo $html->link($html- >image('../theme/admin/img/icons/16/icon16x16.png',array('alt'=>'','class'=>'icon left','id'=>'profile-icon')).'Resize',array('action'=>'edit_photo','01'),array('escape'=>false,'id'=>'profile-photo','class'=>'blue','rel'=>'shadowbox;height=100;width=400','title'=>'Resize'));
生成的 HTML
<a href="/edit_photo/01" id="profile-photo" class="blue" rel="shadowbox;height=100;width=400" title="Resize"><img src="/theme/admin/img/icons/16/icon16x16.png?v=1000" alt="" class="icon left" id="profile-icon" />Resize</a></div>
CakePHP 1.3 版
任何想法和想法都将不胜感激!
【问题讨论】:
-
请在构建 html (img) 的位置添加您的 cakephp 代码、生成的 html 和 cakephp 版本。恕我直言,你可以用 cakephp 做到这一点。
-
@Richard 我已经添加了 cakephp 代码,生成了 html 和 cake 版本,我很高兴知道这是否可以用 cakephp 完成,谢谢!
-
您是否尝试使用此链接中的蛋糕主题book.cakephp.org/1.3/en/The-Manual/Developing-with-CakePHP/…?
标签: .htaccess cakephp cakephp-1.3