【问题标题】:CakePHP HTML helper CSS tag and Apache AliasCakePHP HTML 助手 CSS 标记和 Apache 别名
【发布时间】:2010-12-01 19:04:06
【问题描述】:

作为 CakePHP 的新手,我希望就配置 Apache 和 CakePHP 以查找包含文件(CSS、JavaScript 等)的“正确”方式提供一些建议。

如果我的服务器的DocumentRoot 设置为/var/www 并且我在/var/www/somepath/cakeapp 中安装和配置CakePHP,我可以通过URL http://example.com/somepath/cakeapp 按预期访问应用程序。

但是,如果我使用 HTML 帮助程序在我的默认布局中生成 CSS 链接标签,我就会遇到麻烦。比如代码

echo $html->css('styles');

产生这个标签:

<link rel="stylesheet" type="text/css" href="/somepath/cakeapp/css/styles.css" />

然而,CSS 实际上存在于/somepath/cakeapp/app/webroot/css

如果 CakePHP 应用程序是我域中唯一的应用程序,我可以将 DocumentRoot 指向 /var/www/somepath/cakeapp/app/webroot,正如文档所建议的那样,一切都会(大概)很好。但是,这不是我的选择。

是否有一种普遍接受的正确配置 Apache 和 CakePHP 的方法,以便 HTML 助手可以生成正确的链接标签?

编辑:我觉得CakePHP配置和Apache Aliases一定有一些我还没有遇到过的组合。

【问题讨论】:

    标签: cakephp apache2 cakephp-1.3


    【解决方案1】:

    /somepath/cakeapp/css/styles.css其实是链接中需要显示的正确路径。

    之所以如此显示,是因为您的 cakeapp 目录中的 .htaccess 文件将请求重定向(重写)到 cakeapp/app/webroot 目录。

    现在,这种结构存在的原因通常是因为您的应用程序中有“公共”和“非公共”部分。 “非公开”部分包含 PHP 代码,包括控制器、模型、视图、插件、蛋糕库等。“公开”部分包括 css、脚本和图像文件。

    现在,您可以将您的 /var/www/html 文件夹作为您的应用程序目录以确保其安全。为了完全按照您的喜好配置您的应用程序,请检查 cakeapp/app/bootstrap.php 文件并更改相关设置。你可以了解更多关于here的信息。

    简而言之,不用担心。你看到的路是对的!

    【讨论】:

    • 感谢您的详尽回答。最后,正如你所说,我的配置很好。让我感到困惑的是,我不小心引用了一个不存在的样式表。显然,当它没有找到该文件时,CakePHP 继续像往常一样解释请求,寻找 CssController(当然,没有找到它。)
    • 啊,我通常将我的 Net 控制台保存在 Firebug 中,以检查 css、js、图像和 ajax 请求等非加载资源。不管怎样,很高兴你能解决这个问题@eaj
    【解决方案2】:

    尝试在 Cake 的根目录 /app 和 /app/webroot 中的 .htaccess 文件中定义 RewriteBase 以指向您的子目录。将它们设置为各自的路径,/somepath/、/somepath/app/ 和 /somepath/app/webroot/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-17
      • 2017-05-10
      • 1970-01-01
      • 2011-04-22
      相关资源
      最近更新 更多