1

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

このエラーを検索したところ、次の考えられる理由が見つかりました。

  1. baseURL が間違っているか見つからない
  2. Modの書き換えが有効になっていません
  3. 公開されている .htaccess ファイルが見つからないか、正しくありません
  4. vHost に「Allow Override = All」がありません
  5. ファイルの相対パスに先頭の「/」スラッシュがない

それらのどれも私の問題に適合しません。

  1. より深い「baseURL」がないため、デフォルトのパスは「」で、vhost を /project/public フォルダーに直接指定します。
  2. Modの書き換えが有効になり、任意のページ、コントローラー、アクションを閲覧できます
  3. .htaccess はデフォルトで存在します
  4. [上書きを許可] が [すべて] に設定されているため、書き換えルールはプロジェクトの残りの部分で正常に機能します
  5. 最初に「/」を付けずに試してみました。無効

私のレイアウトには、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 構成) にコピーすると、正常に動作します。

誰かがこれを修正する方法を知っているかもしれません...

ありがとう

4

1 に答える 1

0

javascriptフォルダの名前を変更することで解決しました。詳細については、上記の私のコメントを参照してください

于 2012-11-06T19:19:33.367 に答える