さて、これは本当に初歩的な問題であることは知っていますが、わかりません。 これはLaravelに関する質問です。
基本的に、スタイルシートはデフォルトのレイアウトビューに埋め込まれています。私は現在、次のような通常のcssを使用してそれらをリンクしています。
<link rel="stylesheet" href="css/app.css" />
/ aboutなどの単一レベルのルートにいるときはうまく機能しますが、/ about/meのように深くなると機能しなくなります。
Chromeのデベロッパーコンソールを見ると、次のエラーがいくつか表示されます(より深いルートのみ):
Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://example.dev/about/css/app.css".
したがって、明らかに、「about」フォルダー内のcssを探しています。もちろん、これはフォルダーではありません。
ルートに関係なく、同じ場所でアセットを探したいだけです。
Laravel 4および5の場合:
<link rel="stylesheet" href="{{ URL::asset('assets/css/bootstrap.min.css') }}">
URL::asset
はproject/public/
フォルダーにリンクします、スクリプトをそこにチャックします。
.blade.php
拡張子を使用します。Laravel 4
これを行うためのより良い正しい方法
CSSの追加
HTML :: styleは、project/public /フォルダーにリンクします
{{ HTML::style('css/bootstrap.css') }}
JSの追加
HTML :: scriptは、project/public /フォルダーにリンクします
{{ HTML::script('js/script.js') }}
アセットに相対パスを使用しており、絶対パスに変更するとすべてが機能します(「css」の前にスラッシュを追加します)。
<link rel="stylesheet" href="/css/app.css" />
in Laravel 5、
ビューにjsファイルをロードするには2つの方法があります
最初はhtmlヘルパーを使用し、2番目はアセットヘルパーを使用します。
htmlヘルパーを使用するには、最初にコマンドラインでこのパッケージをインストールする必要があります。
composer require illuminate/html
その後、それを要求する必要があるので、config/app.phpに移動し、この行をプロバイダー配列に追加します
'Illuminate\Html\HtmlServiceProvider'
次に、htmlパッケージのエイリアスを定義する必要があるため、config/app.phpのエイリアス配列に移動し、これを追加します
'Html' => 'Illuminate\Html\HtmlFacade'
これで、HTMLヘルパーがインストールされるので、ブレードビューファイルに次のように記述できます。
{!! Html::script('js/test.js') !!}
これにより、project_root/public/js/test.jsでtest.jsファイルが検索されます。
//////////////////////////////////////////// //////////////////
htmlヘルパーの代わりにアセットヘルパーを使用するには、ビューファイルに次のようなsthを記述する必要があります。
<script src="{{ URL::asset('test.js') }}"></script>
これは、project_root/resources/assets/test.jsでtest.jsファイルを探します
Laravel 3を使用していると思います。はいの場合、CSS/JSファイルを
public/css
public/js
bladeテンプレートを使用して呼び出します
{{ HTML::style('css/style.css'); }}
{{ HTML::script('js/jquery-1.8.2.min.js'); }}
{project} /application/routes.phpの前にルートフィルターに配置することをお勧めします
Route::filter('before', function()
{
// Do stuff before every request to your application...
Asset::add('jquery', 'js/jquery-2.0.0.min.js');
Asset::add('style', 'template/style.css');
Asset::add('style2', 'css/style.css');
});
およびブレードテンプレートエンジンの使用
{{ Asset::styles() }}
{{ Asset::scripts(); }}
laravel 4
では、このように{{ URL::asset('/') }}
を貼り付けるだけです。
<link rel="stylesheet" href="{{ URL::asset('/') }}css/app.css" />.
次の場合も同じです。
<script language="JavaScript" src="{{ URL::asset('/') }}js/jquery.js"></script>
<img src="{{ URL::asset('/') }}img/image.gif">
混合ヘルパーを備えたLaravel 5.4:
<link href="{{ mix('/css/app.css') }}" rel="stylesheet">
<script src="{{ mix('/js/app.js') }}"> </script>
Laravel 5.7で、CSSまたはJSファイルをPublicディレクトリに配置します。
CSSの場合:
<link rel="stylesheet" href="{{ asset('bootstrap.min.css') }}">
JSの場合:
<script type="text/javascript" src="{{ asset('bootstrap.js') }}"></script>
あなたが追加する必要がありますビンサはほとんどそれを正しく持っていました
<base href="{{URL::asset('/')}}" target="_top">
スクリプトは通常のパスに配置する必要があります
<script src="js/jquery/jquery-1.11.1.min.js"></script>
これは、画像や、画像ソースやajaxリクエストなどの相対パスを持つその他のものは、ベースパスが添付されていないと正しく機能しないためです。
私の意見では最良の方法はあなたのHTMLにBASEタグを追加する
<base href="/" target="_top">
したがって、次のようなものを使用する必要はありません
{{ HTML::script('js/jquery/jquery-1.11.1.min.js'); }}
入力するだけ
<script src="js/jquery/jquery-1.11.1.min.js"></script>
あなたの意見では、それは動作します。
この方法では、RESTful URLと静的リソースを画像、CSS、スクリプトとして扱います。
のように使用するより良い方法、
<link rel="stylesheet" href="{{asset('assets/libraries/css/app.css')}}">
ハードコーディングする場合は、おそらくフルパス(href="http://example.com/public/css/app.css"
)を使用する必要があります。ただし、これは、開発と実稼働のためにURLを手動で調整する必要があることを意味します。
上記の解決策に代わる方法は、Laravel 3で<link rel="stylesheet" href="URL::to_asset('css/app.css')" />
またはLaravel 4で<link rel="stylesheet" href="URL::asset('css/app.css')" />
を使用することです。これにより、HTMLを思いどおりに記述できますが、Laravelあらゆる環境で適切なパスを生成します。
パブリックフォルダーの名前を変更していないとします。 cssおよびjsファイルは、パブリックフォルダーのcssおよびjsサブフォルダーにあります。ヘッダーは次のようになります。
<link rel="stylesheet" type="text/css" href="/public/css/icon.css"/>
<script type="text/javascript" src="/public/js/jquery.easyui.min.js"></script>
ちょうど別の問題を追加:
/public
を使用してプロジェクトから.htaccess
を削除する場合、
次に、これを使用できます。[asset()
内の/css
の前にpublic
を追加]
<link href="{{ asset('public/css/app.css') }}" rel="stylesheet">
[時には便利です。]
Laravel 5.8で
<script src="{{asset('js/customPath1/customPath2/customjavascript.js')}}"></script>
ちょうど私のためのトリックを作りました。
Laravel 4:の場合:{!!二重中括弧{{
およびLaravel 5以降のバージョンの場合:{!!ハイエンドバージョンの{{および!!} by}}
JavaScriptをカスタム定義のディレクトリに配置した場合。
たとえば、jQuery-2.2.0.min.js
がディレクトリの下にある場合resources/views/admin/plugins/js/
から*.blade.php
セクションの終わりとして
<script src="{!! asset('resources/views/admin/plugins/js/jQuery-2.2.0.min.js') !!}"></script>
Higher-EndバージョンはLower-Endバージョンもサポートしますが、逆はサポートしません。
スクリプトファイルをパブリックディレクトリに配置してから使用します(userFunctions.jsなど)
<script type="text/javascript" src="{{asset('js/userFunctions.js')}}">
これを行うより良い正しい方法:
<link rel="stylesheet" href="{{ asset('assets/css/bootstrap.min.css') }}">