🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Q&A

解決済

3回答

2239閲覧

さくらのレンタルサーバーでのLaravelのデプロイについて

kk0055

総合スコア5

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

0グッド

0クリップ

投稿2021/01/25 09:18

Laravelで作った画像投稿機能つきのWebアプリをさくらのレンタルサーバーにアップしました。
レンタルサーバーを今回初めてです。

色々なブログを参考しにてシンボリックリンクを貼ったりして画像が表示されるようにはなったのですがローカル環境では下記のようにsrc="/storage/image/item_nameですべて問題なく表示されていたのですが、サーバー上ではpublicをつける必要があったり../public/storage/image/{{ $item->image }}などページごとに階層を変えないとうまく表示ができません。

HerokuとS3を使ってデプロイしたときには問題なくローカルとサーバー上で同じ書き方ができたので、レンタルサーバーでもできると思っております。

src="/storage/image/{{ $item->image }}"で統一したいのですが
解決方法がありましたら教えて頂きたいです。

ローカル

<img src="/storage/image/{{ $item->image }}" alt="pic" >

レンタルサーバー上

<img src="/public/storage/image/{{ $item->image }} alt="pic" > <img src="../public/storage/image/{{ $item->image }} alt="pic" >

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kai0310

2021/01/25 10:01 編集

公開フォルダー(www)と同じ階層にLaravelのプロジェクトディレクトリを設置し、シンボリックリンクを貼ればいいと思います。
kk0055

2021/01/25 15:32

ありがとうございます!公開フォルダーの下に直接シンボリックリンクをはってみたところ、動くようになりました!
guest

回答3

0

ベストアンサー

Laravelドキュメントのインストーレーションには下記のように書かれているはずです。

Laravelをインストールできたら、Webサーバのドキュメント/Webルートがpublicディレクトリになるように設定してください。

どのような環境下でも何かしらで上記を設定してようやくスタートです。

さくらレンタルサーバー上でのDocument Rootの設定はプラン次第ですけど、

コントロールパネル
→ドメイン/SSL
→ドメイン/SSL
→「WEB公開フォルダ」
Laravelプロジェクトディレクトリ/publicに変更すれば良いかと思います。
イメージ説明

投稿2021/01/25 09:58

編集2021/01/25 10:43
m.ts10806

総合スコア80875

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kk0055

2021/01/25 15:34

ありがとうございます!そういったことも知らなかったので勉強になりました。初期ドメインだとRootの設定はできないようなのでドメインを申請しました!
m.ts10806

2021/01/25 19:45

そうですね。というか、あまりサーバーだけ借りるというのはないと思います(無料期間はあるけど)。
guest

0

サーバー上ではpublicをつける必要があったり../public/storage/image/{{ $item->image }}などページごとに階層を変えないとうまく表示ができません。

この状態がまずよくありません。

例えばドメイン名/.envにアクセスしたらDBの情報など出てしまいませんか?

公開ディレクトリをpublicにするなどして調整しましょう

投稿2021/01/25 09:35

mikkame

総合スコア5036

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kk0055

2021/01/25 15:37

publicでシンボリックリンクを貼ってみてassetを使うとstorageから呼び出せるようになりました! ありがとうございます!.envにはアクセスできないので大丈夫かと思います。。
guest

0

App::environment();
を使って実行環境を判別してパスのプレフィックスを解決させる、とか?

投稿2021/01/25 09:24

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問