404, а освежающие маршруты реагируют с Laravel? - PullRequest
0 голосов
/ 17 июня 2019

Работая с проектом на основе Laravel, я следовал руководству, чтобы увидеть, как они взаимодействуют друг с другом. Приложение состоит из простого CRUD Application, с тремя маршрутами:

  • / Домашний маршрут
  • /create создать маршрут проекта
  • /{id} маршрут одного проекта

У меня возникла проблема с отладкой ошибки, связанной с third route, для разработки localhost:8000/7 приведу проект с id 7, и он будет работать при создании проекта или при обращении к нему из /, но если я хочу получить к нему доступ, набрав полный URL-адрес, например localhost:8000/7, я получу 404 not found.

enter image description here

Я что-то упустил, и я не могу понять это ??

App.js:

 import React, { Component } from "react";
import ReactDOM from "react-dom";
import { BrowserRouter, Route, Switch } from "react-router-dom";
import Header from "./Header";
import ProjectsList from "./ProjectsList";
import NewProject from './NewProjects';
import SingleProject from "./SingleProject";
import { Provider } from 'react-redux';
import { createStore } from 'redux';
import reducer from '../reducers/index';
const store = createStore(reducer)
class App extends Component {
    render() {
        return (
            <Provider store={store}>
                <BrowserRouter>
                    <div>
                    <Header />
                        <Switch>
                            <Route exact path="/" component={ProjectsList} />
                            <Route path="/create" component={NewProject} />
                            <Route path="/:id" component={SingleProject} />
                        </Switch>
                    </div>
                </BrowserRouter>
            </Provider>
        );
    }
}

ReactDOM.render(<App />, document.getElementById("app"));

web.php:

<?php

Route::get('/', function () {
    return view('welcome');
});

api.php:

<?php

use Illuminate\Http\Request;



Route::middleware('auth:api')->get('/user', function (Request $request) {
    return $request->user();
});

Route::get('projects', 'ProjectController@index');
Route::post('projects', 'ProjectController@store');
Route::get('projects/{id}', 'ProjectController@show');
Route::put('projects/{project}', 'ProjectController@markAsCompleted');
Route::post('tasks', 'TaskController@store');
Route::put('tasks/{task}', 'TaskController@markAsCompleted');
Route::view('/{path?}', 'app');

1 Ответ

1 голос
/ 17 июня 2019

Маршрут перехвата, который используется для вашего приложения React, должен быть в маршрутах web.php.

Route::view('{path?}', 'app');

Вы добавили его в свои api.php маршруты.Однако эти маршруты имеют префикс /api/.Вот почему он не будет работать при обновлении.

Имейте в виду, что вы должны всегда загружать весь маршрут как последний маршрут.В противном случае другие маршруты могут больше не работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...