JS ファイルのインクルード中に、新しいサーバーの ZF に問題があります。外部 JS (google api) を含めても問題ありません。zf は相対的ではない JS ファイルをロードしたいようです。
FireBug によって HTML コンソールの Srcipt タグに表示されるエラーメッセージ:
<script src="/javascript/helper.js" type="text/javascript">
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL http://project/javascript/helper.js was not found on this server. </p>
<hr>
<address>Apache/2.2.16 (Debian) Server at domain.squeeze Port 80</address>
</body></html>
</script>
ページは完全な URL でファイルを取得しようとするため、スクリプトをロードしません。書き換え規則のため、これは機能しません。何百ものことを試した後、同じ場所で次のエラーが発生しました。
<p>The requested URL /javascript/helper.js was not found on this server.</p>
しかし、これは正しい相対リンクです。
私の構造:
/var/www/project/
-->application
-->...
-->public
-->javascript
helper.js
<other JS Files>
index.php
.htaccess
このエラーを検索したところ、次の考えられる理由が見つかりました。
- baseURL が間違っているか見つからない
- Modの書き換えが有効になっていません
- 公開されている .htaccess ファイルが見つからないか、正しくありません
- vHost に「Allow Override = All」がありません
- ファイルの相対パスに先頭の「/」スラッシュがない
それらのどれも私の問題に適合しません。
- より深い「baseURL」がないため、デフォルトのパスは「」で、vhost を /project/public フォルダーに直接指定します。
- Modの書き換えが有効になり、任意のページ、コントローラー、アクションを閲覧できます
- .htaccess はデフォルトで存在します
- [上書きを許可] が [すべて] に設定されているため、書き換えルールはプロジェクトの残りの部分で正常に機能します
- 最初に「/」を付けずに試してみました。無効
私のレイアウトには、JS 用のこの包含メソッドがあります: --> layout.phtml
$this->headScript()->appendFile('/javascript/jquery_1.6.2/jquery.js','text/javascript');
$this->headScript()->appendFile('/javascript/jqueryui_1.8.16/jquery-ui.min.js','text/javascript');
$this->headScript()->appendFile('/javascript/jquery.metadata.js','text/javascript');
$this->headScript()->appendFile('/javascript/jquery.validate.js','text/javascript');
$this->headScript()->appendFile('/javascript/jquery.fileupload.js','text/javascript');
$this->headScript()->appendFile('/javascript/jquery.fileupload-ui.js','text/javascript');
$this->headScript()->appendFile('/javascript/methods_de.js','text/javascript');
$this->headScript()->appendFile('/javascript/helper.js','text/javascript');*/
echo $this->headScript();
紛らわしいのは、スタイルシートの組み込みが機能することです。これは同じテクニックです
私はそれらを含めます
$this->headLink()->appendStylesheet('/css/layout.css');
echo $this->headLink();
私の .htaccess:
SetEnv APPLICATION_ENV development
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
Debian lenny でいくつかの ZF プロジェクトを実行していますが、問題なく動作します。今、私は 2 つの Debian スクイーズをセットアップしましたが、両方のシステムでこれらの問題が発生しました。
プロジェクト フォルダーを lenny システム (同じ vhost 構成) にコピーすると、正常に動作します。
誰かがこれを修正する方法を知っているかもしれません...
ありがとう