Laravelを使用しています。私は自分の結婚式の招待状をまとめようとしています。パブリックフォルダーにフォルダーがあり、そのフォルダーのスタイルとスクリプトを作成します。
すべてをコピーして新しいブレードファイルに貼り付けるのではなく、そのフォルダを指すことができるかどうか疑問に思っています。
ルート
Route::get('/wedding', 'WeddingController@index');
WeddingController
<?php namespace App\Http\Controllers;
class WeddingController extends Controller {
public function index()
{
return view('wedding.index');
}
}
質問
/ publicフォルダー内のフォルダーの1つからindex.html
をロードするようにインデックス関数を指定できるかどうか疑問に思っています。
.blade
ディレクトリからapp/resources/views
ファイルをロードする必要がありますか?
これに関するヘルプ/提案は大歓迎です。
ウェディングフォルダをパブリックフォルダ内に直接配置するだけです。
mv wedding/ /path/to/laravel/public
次に、結婚式の接尾辞を付けてサイトのURLにアクセスします。
http://my-site.com/wedding
これにより、weddingフォルダー内からindex.html
が読み込まれます。
これは、try_files
構成ファイル内のNginxの/etc/nginx/sites-enabled/my-site
ディレクティブを介して機能します。
location / {
try_files $uri $uri/ /index.php?$query_string;
}
これは、URLに対応する実際のファイル(たとえば、/css/app.css
、/wedding/index.html
など)を最初に検索するようにNginxに指示します。一致するファイルが見つからない場合(たとえば、通常は404 not foundが返されます)、代わりにクエリ文字列を引数としてindex.phpスクリプトに渡す必要があります。
File
ファサードを使用してコントローラーから静的ファイルをロードします
use File;
return File::get(public_path() . '/to new folder name/index.html');
1つの解決策は、結婚式の招待状のindex.html
の名前をindex.php
に変更し、それをresources/views
フォルダー内に配置して、Laravelテンプレートになるようにすることです。
cd path/to/laravel
mkdir resources/views/wedding
mv public/wedding/index.html resources/views/wedding/index.php
次に、必要に応じてコントローラーから呼び出すことができます。
public function index()
{
return view('wedding.index');
}
もちろん、この方法では、CSS/JavaScript /画像のURLがpublic/
フォルダー内のそれぞれの場所に適切にマップされていることを確認する必要があります。