【问题标题】:How does CakePHP rewrite URLs for Plugin CSSCakePHP 如何为 Plugin CSS 重写 URL
【发布时间】:2014-04-01 12:17:58
【问题描述】:

只是好奇 CakePHP 是如何重写 Urls 的

.htaccess for cakephp 在根目录是

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>

为 CakePHP 生成正常的 css 链接为&lt;link rel="stylesheet" type="text/css" href="/cake/css/cake.generic.css" /&gt;

/cake/css/cake.generic.css 这个文件的路径是C:\xampp\htdocs\cake\app\webroot\css\cake.generic.css,通过上面的.htaccess代码实现。

但是,如果我们将 DebugKit(例如)或任何其他插件添加到 cakephp,css 文件将被重写为 &lt;link rel="stylesheet" type="text/css" href="/cake/debug_kit/css/debug_toolbar.css" /&gt;

/cake/debug_kit/css/debug_toolbar.css 该文件的路径是C:\xampp\htdocs\cake\app\Plugin\DebugKit\webroot\css\debug_toolbar.css

我正在搜索执行此操作的 .htaccess 文件,但找不到。 CakePHP 是通过什么方式实现的或者可以实现的。

【问题讨论】:

  • 这很可能不是通过使用 htaccess 实现的,而是一个检测 CSS 文件属于哪个插件的路由器脚本。

标签: php html .htaccess cakephp mod-rewrite


【解决方案1】:

这不仅仅是 htaccess,它使用了 AssetDispatcher: http://book.cakephp.org/2.0/en/development/dispatch-filters.html

这样,它本质上是通过 CakePHP Dispatcher 路由资产,它使用 PHP,并且比直接将文件符号链接到 webroot 的开销要多一些(正如文档所建议的那样)。

【讨论】:

  • 你能帮我举一个可以达到类似效果的小例子吗
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-25
  • 1970-01-01
相关资源
最近更新 更多