0

URL 書き換えを使用するサイトがあるため、相対 URL ではなく直接リソースを参照する必要があります。私は通常、サイトの URL を href の先頭に追加することでこれを行います。

例:

<script src="<?php echo SITE_URL ?>lightbox/js/lightbox.js"></script>

問題は、lightbox.js 内で画像が相対的に読み込まれることです。

function LightboxOptions() {
  this.fileLoadingImage = 'images/loading.gif';
  this.fileCloseImage = 'images/close.png';
  this.resizeDuration = 700;
  this.fadeDuration = 500;
  this.labelImage = "Image";
  this.labelOf = "of";
}

私はこれを行うことができることに気づきました:

 this.fileLoadingImage = 'http://www.example.com/images/loading.gif';

しかし、リソースをコンテキストから抽象化するという私の考えにはうまく適合しません。設定ファイルでサイト URL を変更すると、lightbox.js ファイルにも表示されるようにしたいのです。私はJavascriptの知識がないので、これは私をイライラさせます。

より受け入れられるものは次のとおりです。

 this.fileLoadingImage = site_url + '/images/loading.gif';

site_url は、config.php に従って現在の URL を反映します。SITE_URL 定数を JavaScript ファイルに取得するにはどうすればよいですか?

4

1 に答える 1

0

仮想ホストをセットアップし、それを index.php を含むプロジェクト フォルダー (パブリック フォルダー) にポイントしてから、すべての参照を絶対 (つまりthis.fileLoadingImage = '/images/loading.gif') に変更します。

これは多くのフレームワークが行っていることだと思います。

以前は、php で生成されたアドホックな JavaScript 変数が必要な場合は<script>、scripts.php ファイルの新しいタグに直接配置していました。

<script src ="/js/jquery.js"></script>
...
<script>
  var SITE_URL = <?php echo $site_url; ?>;
</script>

それが非常に良い習慣かどうかはわかりませんが。

于 2013-02-03T23:29:38.853 に答える