【发布时间】:2021-06-22 00:23:37
【问题描述】:
我有一个关于如何使用 laravel livewire 的问题,因为我有自己的理由不使用 PHP artisan serve、Nginx、vhosts 或任何 PHP 服务。使用 .htaccess 像普通的原始 PHP 一样正常访问项目(仅用于开发阶段)。
首先我的 laravel 设置, 我正在使用 Laravel 8,我在没有 PHP artisan serve 的情况下访问 laravel 项目的方式是使用 .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 之前一切正常。安装良好,检测到火线。但是当我尝试提交表单时,它会给我这 3 个错误
Uncaught (in promise) SyntaxError: Unexpected token
根据我对这些错误的理解,它返回 HTML 而不是 JSON,在我的情况下应该是 404(只是我的假设)
404 未找到
此路由不支持 GET 方法。支持的方法:POST。
通过使用 PHP artisan serve,它可以毫无问题地工作并且零配置。但是,如果没有 PHP artisan 服务,这对我来说就成了一个问题和头疼的问题。我阅读了有关asset_url 的文档并尝试进行更改,例如:
'asset_url' => 'http://localhost/Laravel/v8/suhv2livewire'
但仍然无法正常工作,出现上面显示的 3 个错误。
我在 StackOverflow 上发现了一个类似的问题,但没有工作,其他人说关于 Nginx 等等。我不想那样。
如果你们找到任何解决方案,请提供帮助。如果我可以像使用任何其他 javascript 文件一样使用 livewire 会更好
require('livewire')
像 alpinejs。
让我烦恼的是,我不知道我的 .htaccess、livewire asset_url 或任何其他部分是真正的问题。
感谢您的帮助。
【问题讨论】:
标签: javascript php laravel .htaccess laravel-livewire