CakePHP HTML帮助程序CSS标记和Apache别名

时间:2010-12-01 19:04:06

标签: cakephp apache2 cakephp-1.3

作为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别名的组合我尚未运行过。

2 个答案:

答案 0 :(得分:1)

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

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

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

现在,您可以将您的/ var / www / html文件夹设为您的应用目录,以确保其安全。要根据自己的喜好完全配置应用程序,请检查cakeapp / app / bootstrap.php文件并更改相关设置。您可以详细了解here

总之,不用担心。你看到的路径是对的!

答案 1 :(得分:1)

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