CSS不使用CakePHP,使用MAMP

CSS不使用CakePHP,使用MAMP,css,cakephp,mamp,Css,Cakephp,Mamp,我在MacBook Pro上使用MAMP作为本地服务器。PHP和MySql运行良好。然而,我对CakePHP有一个奇怪的问题——CSS只能在我的网站主页上工作,并且只能通过以下两条路径工作: “localhost”和“localhost/index.php” 但是,使用“localhost/index.php/”只会像站点中的所有其他页面一样返回未设置样式的标记。一个斜杠怎么能打断CSS 一些搜索表明,这可能是apache中的mod rewrite问题,但老实说,我不知道如何测试我所做的更改是否

我在MacBook Pro上使用MAMP作为本地服务器。PHP和MySql运行良好。然而,我对CakePHP有一个奇怪的问题——CSS只能在我的网站主页上工作,并且只能通过以下两条路径工作: “localhost”和“localhost/index.php”

但是,使用“localhost/index.php/”只会像站点中的所有其他页面一样返回未设置样式的标记。一个斜杠怎么能打断CSS

一些搜索表明,这可能是apache中的mod rewrite问题,但老实说,我不知道如何测试我所做的更改是否打开mod rewrite

由于CSS只适用于2个特定路径,这可能是我的路由的问题吗?我只定义了2个-“/”和“/index.php/”-它们都是相同的

任何帮助都将不胜感激,
James

看起来您的MAMP配置(或者MAMP中的Apache已禁用mod_rewrite)。看起来您必须按照说明,编辑Apache的httpd.conf模板,搜索mod_rewrite并在配置模板中取消注释此行。

看起来您的MAMP配置(或者MAMP中的Apache禁用了mod_rewrite。看起来您必须按照说明,编辑Apache的httpd.conf模板,搜索mod_rewrite并在配置模板中取消对此行的注释。

标记末尾的斜杠很可能会打断样式表的文件路径。例如,如果您的css被引用为

<link rel="stylesheet" href="css/stylesheet.css" />

然后将斜杠添加到页面URL意味着您需要向后跳一步,以获得相同的样式表,因为它不再与您所在的页面位于同一文件夹中

所以你可以加上

../ before the reference like <link rel="stylesheet" href="../css/stylesheet.css" />
。/在引用之前,如
或者,在这种情况下,一个更简单的解决方案可能是引用样式表,如下所示:

 <link rel="stylesheet" href="http://localhost:8888/project/css/stylesheet.css" />

标记末尾的斜杠很可能会打断样式表的文件路径。例如,如果css被引用为

<link rel="stylesheet" href="css/stylesheet.css" />

然后将斜杠添加到页面URL意味着您需要向后跳一步,以获得相同的样式表,因为它不再与您所在的页面位于同一文件夹中

所以你可以加上

../ before the reference like <link rel="stylesheet" href="../css/stylesheet.css" />
。/在引用之前,如
或者,在这种情况下,一个更简单的解决方案可能是引用样式表,如下所示:

 <link rel="stylesheet" href="http://localhost:8888/project/css/stylesheet.css" />

问题很可能是因为tbwcf说您试图使用相对文件路径加载CSS文件,但您应该始终使用将资源文件添加到布局中:

<?php echo $this->Html->css('style'); ?>

以上将输出

<link rel="stylesheet" type="text/css" href="/css/style.css" />

好处是,如果将应用程序安装到其他目录,路径会自动更改:

<link rel="stylesheet" type="text/css" href="/other/directory/css/style.css" />


不要使用相对文件路径,如
。/css
。除最简单的情况外,这将再次破坏布局。

问题最有可能是因为tbwcf说您正试图使用相对文件路径加载css文件,但您应始终使用将资源文件添加到布局中:

<?php echo $this->Html->css('style'); ?>

以上将输出

<link rel="stylesheet" type="text/css" href="/css/style.css" />

好处是,如果将应用程序安装到其他目录,路径会自动更改:

<link rel="stylesheet" type="text/css" href="/other/directory/css/style.css" />


不要使用相对文件路径,如
。/css
。除最简单的情况外,这将再次破坏版面。

请显示用于将css添加到版面的代码。可能是使用相对文件路径而不是绝对路径。请显示用于将css添加到版面的代码。可能是使用相对文件路径而不是绝对路径。这里不太可能出现这种情况——CakePHP不使用经过修饰的URL来提供CSS文件。CakePHP使用.htaccess将内容路由到app/webroot dir,在那里开始代码分派过程,并且-通常存储所有资产。因此,当使用类似domain.com/img/where.jpg-i的路径访问资产时或者必须通过mod_rewrite来处理,或者需要完整路径(/app/webroot/img/whatever.jpg)指定。这也与css和js有关。这里不太可能出现这种情况——CakePHP不使用经过修饰的URL来提供css文件。CakePHP使用.htaccess将内容路由到app/webroot dir,在那里开始代码分派过程,并且-通常存储所有资产。因此,当使用类似domain.com/img/whater.jpg的路径访问资产时-要么必须通过mod_rewrite处理,要么需要完整路径(/app/webroot/img/whatever.jpg)指定。这也与css和js有关。感谢大家的回复。这是由于相对路径。我将css路径更改为绝对路径,这没有什么区别。然后,我将jquery路径更改为绝对路径,因为我使用的是较少的css框架和语义网格系统。这解决了我的问题。感谢大家的回复。它结果是由于相对路径。我将CSS路径更改为绝对路径,这没有任何区别。然后,我将jquery路径更改为绝对路径,因为我使用的是较少的CSS框架和语义网格系统。这解决了我的问题。