🎃

ELB + ECSでホストしているLaravel/PHPのCSSが効かない。

2022/09/12に公開約800字

AWSでLaravelをホストすると何故かCSSがあたらない。

ELB + ECS構成にLaravelプロジェクトをホストしたんですが、ローカルでは機能していたCSSが何故か機能しなくなりました。
いろいろ調べたのですがよくわからず悩んでいた時、「サーバーじゃなくてコンソールにログが出てるんじゃない?」と、ふと思い確認しました。← 半日時間かかった。。

コンソールを開くとMix Contentエラー

読み込まれているCSSファイル全てでMix Contentエラーが発生していました。
調べるとhttpsとhttpのコンテンツが混ざってますよというエラーらしいことがわかりました。
さらに対処法について調べると、「Laravelのファイル読み込みに使うasset関数secure_asset関数に書き換えればいい」ということもわかりました。

それでも直らなかったので、別方法で対処

何故かMix Contentエラーが直りませんでした。調べていくとAWSのELBが前段にあることが問題らしく、以下の方法で解決しました。
app/Http/Middleware/TrustProxies.phpを以下のように変更する。

TrustProxies.php
class TrustProxies extends Middleware
{

    protected $proxies = '*';

    protected $headers = Request::HEADER_X_FORWARDED_AWS_ELB;
}

最後に

自分自身PHPは完全素人で、最後まで解決できた理由がわかりませんでしたが、何とかなってよかったです😊
ご存知の方がいればぜひ教えてください。

Discussion

ログインするとコメントできます