Как направить приложение Laravel с Angular 7 - PullRequest
0 голосов
/ 08 мая 2019

Я создаю сервер с LAMP на локальном компьютере и хочу использовать Laravel для внутреннего интерфейса и Angular 7 для внешнего интерфейса.

Я поместил это в свой web.php файл:

<?php

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::get('/', function () {
        View::addExtension('html', 'php');
        return view('index');
});

И я помещаю все свои файлы Angular в папку /public/, кроме index.html, которая находится внутри /resources/views.

И причина в том, что: если вы заходите на сайт.com / Angular будет загружен.Если вы нажмете на ссылку и перейдете, например, на site.com/page, angular загрузит эту страницу.Пока все здесь не работает как положено.

Но если вы просто наберете site.com/page в адресную строку браузера, вы фактически отправляете запрос на site.com/page.Так как он не существует, веб-сервер вернет 404, и угловое приложение не будет работать.У Angular даже не было возможности быть загруженным.

Я знаю, что это вызвано тем, что у меня нет маршрута к /page внутри файла de web.php, но мой вопрос заключается в том, как решить эту проблему маршрутизации?

Спасибо.

1 Ответ

2 голосов
/ 09 мая 2019

Используйте запасной маршрут .

Используя метод Route::fallback, вы можете определить маршрут, который будет выполняться, когда никакой другой маршрут не соответствует входящему запросу.

Route::fallback(function () {
    //
});

Обязательно поместите его в конец файла маршрутов, чтобы любые существующие маршруты (например, конечные точки API) соответствовали обычному.

Еще одно распространенное решение до восстановлениябыл добавлен маршрут для создания универсального маршрута с использованием совпадения с регулярным выражением :

Route::get('{any}', 'WildcardController@handle')->where('any', '.*');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...