2

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 を適用しません。

これの理由は何ですか?コードが正しいフォルダーを識別しないのはなぜですか?

4

6 に答える 6

5

/ で始まるため、絶対パス (サイトのルートから) として扱われます。ブラウザはそれをに変換します

http://localhost/css/main.css

正しい絶対パスを指定できます

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

またはフルパス

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

または相対パス、たとえば

../css/main.css
于 2009-07-20T05:35:03.393 に答える
3
echo $html->css('main');

API

于 2009-07-20T07:41:41.750 に答える
1

コアヘルパーを使用しないのはなぜですか? CSS ファイルへの必要なパスを生成します

メイン設定ファイル (/app/config/core.php) を確認すると、mod_rewrite を使用していない可能性があります。この行にコメントが付けられているか、core.php を確認してください。

于 2009-07-20T06:02:26.367 に答える
0

あなたの絶対URLが次のように見える場合

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

あなたのURLは

/css/main.css

ブラウザはあなたが与えた URL を翻訳すると思います

http://localhost/css/main.css

(たとえば、 Firebugの「ネット」タブで確認できます)

その場合は、次のことを行う必要があります。

  • 先頭に / を付けない相対 URL を使用する
  • ルート URL を参照する絶対 URL を使用する

しかし、私の意見では、「 」で始まる URL を使用することがhttp://、どのディレクトリや URL にアクセスしていても、CSS の組み込みが常に問題ないことを確認するための最良の方法です...

于 2009-07-20T05:00:37.927 に答える
0

BASEURL を定義するこのような関数を使用すると、1 か所でのみ更新できます。私は次のようなものを使用します...


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();

于 2009-07-20T05:24:14.260 に答える
0

Cake をデプロイするとき、URL は /css/main.css にする必要があります。これは、サーバーの DocumentRoot が cake/app/webroot ディレクトリを指すためです。

詳細については、Cake のオンライン ドキュメントからこの記事を読むことをお勧めします。この記事は Cake の 1.1 バージョンを参照していますが、1.2 でも機能するはずです。

幸運を!

于 2009-07-20T05:59:18.667 に答える