yama_choki
@yama_choki (yama choki)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Laravel デプロイしたWebアプリのリダイレクト先がおかしい

解決したいこと

Laravel9を独学している者です。
先日Webアプリ(Todoリスト)を作成し、とりあえずデプロイしました。

そこで、実際に動くのか試したところ、リンクの挙動がローカル環境とは違う動きをしてしまい、正常に動かすことができません。
本番環境でのリンク先の変更やそもそものURLを変更する方法が知りたいです。
よろしくお願いいたします。

発生している問題・エラー

「さくらインターネット」を使ってデプロイしています。
初期ページのURLは「サーバー名/laravel/laravel_todolist/public/tasks」です。
top.png

👆のページで追加するボタンを押すと、URLが「サーバー名/tasks」となり、Not Foundとなってしまいます。
またデータベースにはデータは保存されていませんでした。
データベースにデータが送信できてない理由は全く表示が出てこないのでわかりません。

not_found.png
表示されているタスク(テストやること・テスト備考)はPHPMyAdminに直接入力し表示されています。
また、編集ボタンを押すとURLは「サーバー名/tasks/1/edit/」となり、Not Foundになります。

該当するソースコード

以下は「追加するボタン」のコードです。

tasks/index.blade.php
<div class="flex items-center md:w-1/3">
    <button type="submit" class="rounded-md mx-auto bg-lime-500 h-10 w-32 hover:bg-lime-400 transition-colors duration-500 text-white">
     追加する
    </button>
</div>

以下がDBにデータを送信後、初期ページに戻るというコードです。

TaskController.php
use App\Models\Task;

public function store(StoreTaskRequest $request)
    {
        $task = new Task;

        //モデル->カラム名 = 値 で、データを割り当てる
        $task->title = $request->input('title');
        $task->remarks = $request->input('remarks');

        //データベースに保存
        $task->save();

        //リダイレクト
        return redirect('/tasks');
    }

一応、以下が追加するボタンを押した際のバリデーションです。

StoreTaskRequest.php
public function rules()
    {
        return [
            'title' => ['required', 'string', 'max:20'],
            'remarks' => ['nullable', 'string', 'max:50'],
        ];
    }

自分で試したこと

リダイレクト先を

TaskController.php
//リダイレクト
return redirect('/laravel/laravel_todolist/public/tasks');

に変更し、再デプロイしたのですが、上記のような動きとなってしまいます。
デプロイミスかもしれないと思い、見た目を少し変更(ボタンの角を丸くしたり角にしたり)して再デプロイを行ったところ、見た目もきちんと変更されていたので、デプロイミスではないようです。

知りたい事

① ボタンを押した際のリダイレクトを設定する場所はどこを変更すれば良いか知りたい。
② URLが「サーバー名/laravel/laravel_todolist/public/tasks」だと長すぎて見栄えが悪いので、
「サーバー名/laravel_todolist」とか「サーバー名/laravel_todolist/tasks」にする方法があるのであれば知りたい。
③ データベースにデータが保存されていないのはなぜなのか知りたい。

上記3点が知りたい事ですが、1つずつでもヒントや確認事項などを教えていただけたら助かります。
何卒、よろしくお願いいたします。

0

No Answers yet.

Your answer might help someone💌