2017-05-10 8 views
0

私はLaravel 5.4を使用してパッケージを作成しています。ブレードテンプレートにいくつかのアセット(js、CSS &イメージ)を含める必要があります。それをどうすれば実現できますか?パッケージのブレードビューにアセットを含める - Laravel

私はasset()を試しましたが、動作していません。ここで

は私のパッケージのフォルダ構造です:

root 
    --package 
    -- vendor_name 
     -- package_name 
      -- src 
       -- assets 
       -- js 
        -- login.js 
       --css 
        -- login.css 
       -- views 
       -- login.blade.php 

は、それがパブリックフォルダにそれらを公開することなく、可能なものですか? Laravel 5.4で

おかげ

+0

'asset()'は、あなたのlaravelプロジェクトのパブリックディレクトリへのパスを提供します。あなたのファイルはベンダのディレクトリにあるようです。そうですか? –

+0

あなたのやり方はできません。ブラウザは、HTTPリクエストを使用してCSS参照とJavascriptソースをロードしようとします。LaravelのHTTP要求に対応する唯一のフォルダはパブリックフォルダです。あなたはパッケージについて話しており、インストールの多くは良い方法に従っているので、答えがすでに示唆しているようにパブリックフォルダに移動する必要があります。 –

答えて

1

あなたはあなたがバージョンを使用したい場合は

<script src="{{ mix('js/login.js') }}"></script> 

がコンパイル資産(Laravelミックス)

https://laravel.com/docs/5.4/mix

mix.js(['resources/assets/js/app.js'], 'public/js') 
     .sass('resources/assets/sass/app.scss', 'public/css') 
     .styles([ 
      'node_modules/animate.css/animate.css', 
      'node_modules/icheck/skins/flat/green.css', 
      'node_modules/flatpickr/dist/flatpickr.css', 
      'node_modules/gentelella/vendors/switchery/dist/switchery.min.css', 
      'node_modules/ion-rangeslider/css/ion.rangeSlider.css', 
      'node_modules/ion-rangeslider/css/ion.rangeSlider.skinFlat.css', 
      'node_modules/gentelella/vendors/google-code-prettify/bin/prettify.min.css', 
      //bootstrap modal carousel.js 
      //'node_module/bootstrap-modal-carousel/dist/css/bootstrap-modal-carousel.css', 
      'node_modules/gentelella/build/css/custom.css', 
      'resources/assets/css/custom.css' 
     ], 'public/css/custom.css') 
     .copy('node_modules/gentelella/vendors/switchery/dist/switchery.min.js', 'public/js/switchery.min.js') 
     .copy('node_modules/gentelella/vendors/switchery/dist/switchery.min.css', 'public/css/switchery.min.css') 
     .copy('resources/assets/images', 'public/images') 
     .copy('node_modules/ion-rangeslider/img', 'public/img') 
     .copy('node_modules/icheck/skins/flat/green.png', 'public/css') 
     .copy('node_modules/icheck/skins/flat/[email protected]', 'public/css').version(); 
を参照してくださいはるかに優れているミックス機能を使用することができます
+0

あなたは私の質問をしてくれなかったようです。 –

+0

いいえ、必要なものをwebpack.mix.jsに入れてコンパイルしてもいいと思いますが、これは良いことです。更新されたコードを見てください –

0

で新しいディスクを作成することができますそのフォルダを指す。ブレード

{{ Storage::disk('package')->url('vendor_name/package_name/src/assets/js/login.js') }}

カスタム・ディレクトリ内

'package' => [ 
      'driver' => 'package', 
      'root' => base_path('package'), 
     ], 

ビューの

これはあなたがconfig/view.phpに行くと、あなたのパス各パッケージのbase_path('package/vendor_name/package_name/src/views')を追加する必要が編集します。

'paths' => [ 
     resource_path('views'), 
     base_path('package/vendor_name/package_name/src/views'), 
    ], 
関連する問題