0

より詳細なコンテキストを提供するために、私のファイル構造は次のようになります: includes/overall/footer.php で、このファイルでは js/nav-header.js を参照しています。includes フォルダーと js フォルダーの両方がベース フォルダーにあることに注意してください。私はこれを正しくやっていますか?

include/overall/footer.php:

    <?php include 'includes/footer.php'; ?>

    <script type="text/javascript" src="libs/jquery-1.10.1.min.js"></script>
    <script type="text/javascript" src="libs/bootstrap/js/bootstrap.min.js"></script>
    <script type="text/javascript" scr="js/nav-header.js"></script>
  </body>
</html>

このファイル自体は別のファイルに含まれていますが、おそらくロードされる順序と関係がありますか? その理由は、javascript ファイルで何も起動できないように見えるからです。どんな助けでも大歓迎です。

4

3 に答える 3

0

nav-header.js にはどのような量が含まれていますか?

アセットは、html に表示される順序でサーバーから要求されます。したがって、nav-header.js は jquery の後に呼び出されますが、その前に読み込みが完了するわけではありません。

また、ファイルをロードするには、絶対パスを使用します: js/nav-header.js代わりに/js/nav-header.js を使用します。これにより 、js/nav-header.js がルート フォルダーからロードされることがわかります。

js/nav-header.js にロード時に起動するコードがある場合 (ドキュメントの準備ができていない場合)、それをドキュメントの準備ができた状態に移動することをお勧めします。

于 2013-06-26T13:28:23.860 に答える
0

アプリケーションの移植性が低下するため、ハードコーディングされた絶対パスを使用しないことをお勧めします。

代わりに、$base_urlhtml でエコーできる変数を設定します。

<?php $base_url = "/"; ?>

あなたのhtmlで

<script type="text/javascript" scr="<?php echo $base_url; ?>js/nav-header.js"></script>

js、css、アンカーなど、サイト全体でこれを使用できます。

于 2013-06-26T13:32:27.847 に答える
0

すべての相対パスで HTML の BASE タグを使用してください:D

Phil Sturgeon は、 CodeIgniter での使用についてブログ投稿を書きましたが、基本的に、同じ原則を利用するためにフレームワークを使用する必要はありません。

ドキュメントルートをアプリケーションのどこかにある変数に保存し、それを参照する関数を用意してから、それを base タグにエコーアウトする必要があります。この方法では、アプリケーションを別の環境に移動するときに、ルートを 1 か所変更するだけで済みます。

また、ベースタグを使用する前にこちらもお読みください。

于 2013-06-26T14:22:55.817 に答える