やりたいこと
- Vue.js 3
- Swiper の SFC への入力
- 画像 URL の配列
- Swiper の SFC からの出力
- 特になし。
- スライドショー、フォトギャラリーがウェブブラウザに描画される
- サムネイルあり
環境
npm run prod の場合は、静的ファイルを書き出してそのファイルへのリンクを HTML ファイルへ埋め込むようになっています。よって、ビルドされたファイルへのリンクは Laravel へアクセスするときの Apache なり Nginx なり PHP ビルトインサーバなりの URL と同じ URL が埋め込まれ、この URL でアクセスできるため問題はありません。
一方で、 npm run dev の場合は、 Vite の開発サーバが別途立ち上がります。そして Vite でビルドされたファイルへアクセスするための埋め込みリンクは、 Vite の開発サーバの URL となります。
Docker を使う場合、 Docker ホスト側から Docker コンテナ内の Vite 開発サーバへどうやってアクセスするのかが、問題になりました。
例えば、カスタマイズしていない vite.config.js で npm run dev すると次のようになります。
http://localhost/ にアクセスすると画面真っ白になった。<script type="module" src="http://127.0.0.1:5173/resources/js/app.js"></script> となっていた。この URL にアクセスしてみても ERR_CONNECTION_REFUSED のエラーページとなった。今回、これを解決しましたのでメモいたします。
# サーバ証明書 (および秘密鍵) の作成
openssl req -x509 -newkey rsa:2048 -nodes -days 3650 \
-keyout private_key.pem \
-out certificate.pem \
-config - <<EOF
[req]
distinguished_name = req_distinguished_name
x509_extensions = usr_cert
prompt = no
[req_distinguished_name]
C = JP
O = oki2a24.com
OU = MyDivision
CN = localhost
[usr_cert]
basicConstraints = critical, CA:FALSE
subjectAltName = DNS:localhost
EOF
# サーバ証明書の確認
openssl x509 -text -noout -in certificate.pem
使用したバージョン
root@495db3743f1d:/var/www/html# openssl version
OpenSSL 1.1.1n 15 Mar 2022
root@495db3743f1d:/var/www/html#
composer update nunomaduro/larastan:^1.0 --dev でアップデートしたところ、 Laravel インストールして生成された無編集のソースコードでエラーが発生した、https://github.com/laravel/laravel/blob/8.x/app から最新ソースコードを適用することで解決したエラーもあった。
/** @var \App\Models\User $this */ と書く。$this に紐づければ良いようだ。/** @mixin \App\Models\User */ と書く。
Bootstrap Icons · Bootstrap 向けのオープンソース SVG アイコンライブラリ のページを見ると、インストールと使い方は書いてあるものの、それだけでは足りず、調べなければうまく使うことができませんでした。
ですので、調べた内容を、走り書き程度ですが、メモいたします。
@popperjs/corebootstrapresolve-url-loadersasssass-loaderlaravel/webpack.mix.js に npm build 時の Bootstrap 5 の SASS の設定を追加laravel/resources/js/bootstrap.js に Bootstrap 5 の読み込を追加laravel/resources/sass/app.scss ファイルを追加し、 Bootstrap 5 の SASS を読み込む。laravel/resources/sass/_variables.scss ファイルを追加した。 Bootstrap 5 をカスタマイズする時の内容を書くためのファイル
Laravel 8 をインストールした直後に Vue.js 3 を SPA として最低限使えるようにしました。