やりたいこと
- 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/core
bootstrap
resolve-url-loader
sass
sass-loader
laravel/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 として最低限使えるようにしました。