在cakephp中的href链接

时间:2009-07-20 04:50:44

标签: cakephp href

在CakePHP中,如果我将href链接指定为href =“/ css / main.css”,则它不会引用webroot中的css文件夹。只有当我提到href =“http://localhost/cake/app/webroot/css/main.css”时才会应用css。

<link type="text/css" rel="Stylesheet" href="/css/main.css" media="screen,projection" />

这不适用于指定的CSS。

这是什么原因? 为什么代码没有识别正确的文件夹?

6 个答案:

答案 0 :(得分:5)

因为它以/开头,所以它被视为绝对路径(来自站点的根目录)。浏览器将其转换为

http://localhost/css/main.css

您可以指定正确的绝对路径

/cake/app/webroot/css/main.css

或完整路径

http://localhost/cake/app/webroot/css/main.css

或相对路径,例如

../css/main.css

答案 1 :(得分:3)

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

BOOK

API

答案 2 :(得分:1)

你为什么不使用核心助手?它将生成CSS文件 Inserting Well-Formatted elements

所需的路径

并检查主配置文件(/app/config/core.php),也许你没有使用mod_rewrite。检查core.php是否注释了此行Configure :: write('App.baseUrl',env('SCRIPT_NAME'));

答案 3 :(得分:0)

如果你的绝对网址是

http://localhost/cake/app/webroot/css/main.css

,您的网址是

/css/main.css

我认为浏览器会将您提供的网址翻译为

http://localhost/css/main.css

(例如,您可以使用Firebug,“net”标签查看

如果是这种情况,你应该:

  • 使用不带前导/
  • 的相对网址
  • 使用引用根URL的绝对URL

但是,在我看来,使用以“http://”开头的网址是确保您的CSS包含始终正常的最佳方式,无论您进入哪个目录或网址... < / p>

答案 4 :(得分:0)

这样定义BASEURL的函数只允许你在一个地方更新..我用的东西就像......


define("DEVELOPMENT", true);

function setReporting() { if (DEVELOPMENT) { define("BASEURL", "http://localhost/localDir", true); error_reporting(E_ALL); } else { define("BASEURL", 'http://' . $_SERVER['SERVER_NAME'], true); error_reporting(0); } } setReporting();

答案 5 :(得分:0)

当你部署cake时,url应该只是/css/main.css,因为服务器的DocumentRoot将指向cake / app / webroot目录。

我建议您阅读this article from Cake's online docs以获取更多信息。请注意,本文引用的是1.1版本的Cake,但也应该在1.2版本中使用。

祝你好运!