Есть некий проект, который ранее работал на версии PHP 8.0, и возникла необходимость перейти на версию PHP 7.2. Проблема заключается в том, что на версии 8.0 сайт работал нормально (использовался vite), но при переходе на 7.2 (используется webpack.mix.js) возникает ошибка. Если мы находимся на корневом маршруте "/", то сайт работает даже после перезагрузки страницы, а если мы переходим на другой маршрут, отличный от корневого, например, "/test", и перезагружаем страницу, браузер выдает ошибку:
"Не удается найти компонент test, GET http://someSite/test 404 (Not Found)"
.
Вот мои основные настройки:
webpack.mix.js
const mix = require('laravel-mix');
require('mix-tailwindcss');
mix.js('resources/js/main.js', 'public/js').vue();
mix.sass('resources/sass/app.scss', 'public/css').tailwind();
web.php
<?php
use Illuminate\Support\Facades\Route;
Route::get('/{any}', function () {
return view('app');
})->where("any",".*");
router.js
import { createRouter, createWebHistory } from 'vue-router';
import rootСomponent from './components/rootСomponent.vue';
import test from './components/test.vue';
const routes = [
{ path: '/', component: rootСomponent },
{ path: '/test', component: test },
];
const router = createRouter({
history: createWebHistory(),
routes,
});
export default router;
app.blade.php
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}" style="background: #F0F0F0;">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Application form</title>
<link href="{{asset('css/app.css')}}" rel="stylesheet">
<!-- <link href="{{ mix('css/app.css') }}" rel="stylesheet"> -->
</head>
<body>
<div id="app"></div>
<script src="{{asset('js/main.js')}}"></script>
<!-- <script src="{{ mix('js/main.js') }}"></script>-->
</body>
</html>
.htaccess
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Send Requests To Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>