2

最近、Lumen フレームワークの新規インストールを行い、それからサイトの構築を開始しました。はい、lumen は API 専用に設計されていることは承知していますが、これを手伝ってください。

すべてのビューを/resources/ views 内に配置し、テンプレートを/resources/views/templates内に配置しました。

[css/js/images]をどこかに配置しなければならなかったので、それをすべてpublic/assets/[css/js/images]に配置するのがいいと思いました。

cssを含めようとしているときの私のレイアウトで-私はこのようなものを使用します-

<link href="{{ url('assets/css/something.css') }}">

そしてそれはこのようなものの出力を与えて動作します -

<link href="localhost/assets/css/something.css">

同じことがjsでも機能しますが、画像を含めようとすると奇妙になります。画像を含めるには、次のように書きます-

<img src ="{{ url('assets/images/someimage.jpg') }}"

ページのソースを表示すると、出力は期待どおりです-

<img src="localhost/assets/images/someimage.jpg">

しかし、私のコンソールは、someimage.jpgが見つからないという404 not foundエラーを発生させます。そして、画像の親を調べてクロスチェックすると、URLは次のようにまったく異なります-

<img src="localhost/images/someimage.jpg">

画像の URL から「アセット」が自動的に省略されて 404 になりますが、ページのソースを表示すると正しい URL が表示されます。

問題を解決しようとしたこと -

  1. キャッシュをクリアし、ページをリロードしました。

  2. url() の代わりに asset() を使用しようとしましたが、そのプロトタイプはルーメンから削除されました。

  3. [css/js/images] フォルダーをアセットから取り出して、親、つまり public に貼り付けます。これは機能しましたが、問題は、以前のセットアップが css と js の両方で機能し、画像のみで問題が発生したのはなぜですか?

私の他の質問は -

1. ページ ソースの URL が、レンダリングされているものと異なるのはなぜですか? 私の場合、ページソースのURLが機能し、画像が表示されましたが、レンダリングされたURLがパスから「アセット」を省略したため、404になりました。

2.これらのアセットをビューに含める他の良い方法はありますか? はいの場合は、それらをどこに置くかについても言及してください。

参照用にいくつかの画像/コードを添付します。

画像には 404 エラーが表示されるが、CSS にはエラーが表示されない、レンダリングされたページの出力。

画像パスに含まれるアセットを示すビュー ページ ソース ウィンドウの出力

4

2 に答える 2

1

これが正しいかどうかはわかりませんが、実際にはその URL 内に画像ストリームを配置する必要があると思います。サーバーは、存在しないバイト エンコード オブジェクトを取得しようとしています。

あなたの場合も同じかどうかはわかりませんが、URL の代わりに画像ストリームを挿入しなければならない例がたくさんありましたが、このライブラリを使用してこの方法で解決しました。

Routes.php

/**
* Image handling routes.
* These make sure images actually are images instead of bytecode
*/
Route::get('organization/logo/{logo}', function($logo) {
    $file = Image::make(Storage::disk('logo-image')->get($logo));
    return $file->response();
});

意見

<img src="{{ asset('organization/logo/' . $organization->logo_path) }}" alt="">

私は完全にオフになっているかもしれませんが、あなたのアプリで何が起こっているかを認識しており、これを実装したときに問題が解決しました.

于 2016-10-06T12:47:06.320 に答える
0

Web サーバーの構成を確認してください。にリダイレクトするある種のリダイレクト設定があるようassets/images/*ですimages/*

簡単なテストとして、[ネットワーク] タブを開き、ブラウザを に移動しますhttp://samplelumena.local/assets/images/footer1.jpg。ネットワーク トレースでは、30x (301、302 など) が表示されhttp://samplelumena.local/images/footer1.jpg、その後にその URL の 404 が表示されると思います。

于 2016-10-19T04:12:47.230 に答える