0

ここで何が間違っているのかわかりませんが、フレームワークはすべてのコントローラーのインデックスアクションでstyle.cssしか見つけられないようです。私は次のようにlayout.phtmlからそれを呼んでいます:

$this->headLink()->appendStylesheet('css/styles.css');

したがって、project.local / accountにアクセスすると、スタイルが見つかります。project.local/account/actionに移動すると、スタイルはありません...実際、project.local / account / indexに移動すると、スタイルはありません。だから...それは少し奇妙なエラーです、または少なくともそれはn00bのためです

編集:Firefoxでコードコンソールを開いてcss / styles.cssをたどろうとすると、次のエラーメッセージが表示されます。

<pre>#0 /home/fiodorovich/library/ZendFramework/library/Zend/Controller/Action.php(515): Zend_Controller_Action->__call('cssAction', Array)
#1/home/fiodorovich/library/ZendFramework/library/Zend/Controller/Dispatcher/Standard.php(295): Zend_Controller_Action->dispatch('cssAction')
#2 /home/fiodorovich/library/ZendFramework/library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#3 /home/fiodorovich/library/ZendFramework/library/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch()
#4 /home/fiodorovich/library/ZendFramework/library/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run()
#5 /home/fiodorovich/public_html/gisele/public/index.php(26): Zend_Application->run()
#6 {main}  </pre>

  <h3>Request Parameters:</h3>
  <pre>array (
  'controller' =&gt; 'gisele',
  'action' =&gt; 'css',
  'module' =&gt; 'default',
)  </pre>
4

1 に答える 1

2

渡すパラメータappendStylesheetはHTMLに盲目的に出力されているだけで、フレームワークは実際にはそのファイルを探していません。

これが一部のページで機能し、他のページでは機能しない理由はappendStylesheet、相対リンクを指定したためです。基本的に、ブラウザが相対リンクに遭遇すると、最後のスラッシュで現在のURLを削除してから、リンクを追加します。

したがって、project.local / accountでは、ブラウザーはproject.local / css / styles.cssでCSSを探しますが、project.local / account / actionでは、ブラウザーはproject.local/accountでCSSを探します。 /css/styles.css。

簡単に言うと、パラメータに先頭のスラッシュを追加します。これにより、すべてのページの同じ場所に解決されるルート相対リンクになります。

$this->headLink()->appendStylesheet('/css/styles.css');

Philがコメントで指摘しているように、上記の例は、ZFアプリケーションがサイトのルートにインストールされている場合にのみ機能します(この場合のように)。BaseUrlヘルパーを使用すると、サイトがサイト階層のどこにあるかに関係なく、正しいパスが出力されます。

$this->headLink()->appendStylesheet($this->baseUrl('css/styles.css'));
于 2011-05-17T00:18:04.813 に答える