Как использовать laravel livewire без php artisan serve?

У меня возникла проблема с использованием laravel livewire, так как у меня есть собственная причина не использовать PHP artisan serve, Nginx, vhosts или любую другую службу PHP. Обычный доступ с использованием .htaccess для проекта, как обычного необработанного PHP (только для стадии разработки).

Сначала моя установка для laravel, я использую Laravel 8, и способ, которым я использую для доступа к проекту laravel без PHP artisan serve, заключается в использовании .htaccess, который выглядит следующим образом:

<IfModule !mod_rewrite.c>
   deny from all
</IfModule>

<IfModule mod_rewrite.c>
RewriteEngine on

RewriteCond %{REQUEST_URI} /$
RewriteRule ^ %{REQUEST_URI}index.php [L,R=301]

RewriteCond %{REQUEST_URI} $
RewriteRule ^(.*)$ public/$1 [L,QSA]

<Files .env>
    Order allow,deny
    deny from all
</Files>
</IfModule>

Благодаря этому я могу получить доступ к своему проекту, и URL-адрес выглядит следующим образом

http://localhost/Laravel/v8/suhv2livewire/public/index.php/login

Все работает хорошо, пока я не установлю livewire в следующий раз. Установка прошла успешно, обнаружен livewire. Но когда я пытаюсь отправить форму, я получаю либо эти 3 ошибки

Непойманный (в обещании) SyntaxError: Неожиданный токен ‹в JSON в позиции 0

Насколько я понимаю, эти ошибки означают, что он возвращает HTML вместо JSON, который в моем случае должен быть 404 (только мое предположение)

404 Не Найдено

Метод GET не поддерживается для этого маршрута. Поддерживаемые методы: POST.

Используя PHP artisan serve, он работает без каких-либо проблем и нулевой настройки. Однако без сервиса PHP artisan для меня это становится проблемой и головной болью. Я прочитал документацию по asset_url и пытаюсь изменить это, например:

'asset_url' => 'http://localhost/Laravel/v8/suhv2livewire'

но все еще не работает и получаю 3 ошибки, которые я показываю выше.

Я нашел аналогичный вопрос в StackOverflow, но не работал, а другие говорили о Nginx и так далее. Я не хочу этого.

Пожалуйста, помогите, если вы, ребята, нашли какое-либо решение. Было бы лучше, если бы я мог использовать livewire, как любой другой файл javascript, например

require('livewire')

как alpinejs.

Что меня раздражает, так это то, что я не знаю ни мой .htaccess, ни livewire asset_url, ни какой-либо другой раздел, являющийся настоящей проблемой.

Спасибо за вашу помощь.


person AhKing    schedule 25.03.2021    source источник


Ответы (1)


in config/livewire.php

'asset_url'  => env('APP_URL', 'http://localhost'),

тогда в livewire актив будет зависеть от .env в APP_URL

поэтому вам нужно настроить URL-адрес в .env

APP_URL=http://localhost/Laravel/v8/suhv2livewire/public

ПРИМЕЧАНИЕ: это изменение вступит в силу после запуска php artisan config:clear

person Kamlesh Paul    schedule 25.03.2021
comment
Если мне это нравится, я получаю неожиданный жетон ‹.... - person AhKing; 25.03.2021
comment
можешь показать мне снимок экрана? - person Kamlesh Paul; 25.03.2021