2016-12-18 4 views
1

私はプロジェクトを開こうとしていますが、このプロジェクトではライブラリ.jsファイルのパスを含める必要があります。ライブラリファイルはLaravelのパブリックディレクトリにあります。パスを必要とするファイルはjavacriptファイルです。通常はLaravelのhtmlファイルと同じように{{ asset() }}を呼び出すことができませんでした。JavascriptからLaravelの公開ディレクトリにリンクする

私が意味する、通常のHTMLの中に私が使用します。

<script src="{{ asset('js/ui-screenfull.js') }}"></script> 

私の質問があり、私はジャバスクリプト内で、Laravelの公開ディレクトリにあるライブラリにリンクしますか?

(これは、スニペットはjavascriptのファイルを必要とするからである):一つの方法として、私は次のようにそれを通常のパスを与えることを試みたので


ライブラリのjsファイル、およびJSが必要なファイルの両方が、パブリックフォルダ内にあります:

uiLoad.load('../libs/screenfull/dist/screenfull.min.js'); 

これは機能しません。これを使用すると、代わりにリンクコンテンツを取得する必要があると考えられます。public/js/libs/screenfull/~

パブリックディレクトリを取得するか、パス間を移動する必要があります。


完全なファイル:

(function ($) { 
    "use strict"; 

    uiLoad.load('../libs/screenfull/dist/screenfull.min.js'); 
    $(document).on('click', '[ui-fullscreen]', function (e) { 
     e.preventDefault(); 
     if (screenfull.enabled) { 
      screenfull.toggle(); 
     } 
    }); 
})(jQuery); 

ディレクトリ一覧:

public 
    - scripts 
     - requiring.js 
    - libs 
     - screenfull/dist/screenfull.min.js 

答えて

1

これを行うには多くの方法があります。

一つは、 - あなたはあなたの<head>内部には、このメタタグを定義することができます。

<meta name="asset_url" content="{{ asset('/') }}"/> 

次に変数にURLを割り当てる:

var asset_url = $('meta[name=asset_url]').attr('content'); 

次にあなたが参照するasset_url変数を使用することができますパブリックパス:

uiLoad.load(asset_url + 'libs/screenfull/dist/screenfull.min.js'); 
+0

これは別のjavascriptファイル内にあります.n私のHTMLのot。 asset_urlを他のjavascriptファイルにどのように渡しますか? – senty

+0

javascriptファイルの中に、 '' 'var asset_url = $( 'meta [name = asset_url]')。attr( 'content');' 'を入れてアセットパスを取得することができます – aceraven777

関連する問題