开发者问题收集

未捕获的 ReferenceError:未使用 Laravel 8 定义 Livewire

2022-05-21
20640

希望你一切都好!

我正在使用 Laravel 8,并且收到错误 Uncaught ReferenceError:Livewire 未定义,请帮助我如何解决这个问题,谢谢。

在此处输入图片说明

在此处输入图片说明 \resources\views\livewire\crud-records-livewire.blade.php

          <!DOCTYPE html>
            <html lang="en">
           <head>
            <meta charset="UTF-8">
             <meta name="viewport" content="width=device-width, initial- 
            scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
      <title>Document</title>
    @livewireStyles
    </head>
   <body>
    <div style="text-align: center">
        <button wire:click="increment">+</button>
        <h1></h1>
    </div>
      @livewireScripts
  </body>
 </html>

\app\Http\Livewire\CrudRecordsLivewire.php

class CrudRecordsLivewire extends Component
{

    public $count = 0;

    public function increment()
    {
        $this->count++;
    }

    public function render()
    {
            

        return view('livewire.crud-records-livewire');
    }
}


Route::get('/messages',CrudRecordsLivewire::class);
3个回答

尝试发布前端资产

php artisan livewire:publish --assets
Ayman Elshehawy
2022-06-11

在我看来,您的托管已关闭。

您不应该在 URL 中看到 public,但您可以看到 Livewire 脚本正在尝试从 public/vendor/livewire 加载 Livewire 库

如果您打开开发人员工具,我认为您会在加载 livewire 脚本时看到 404。

因此,您需要通过确保 文档根目录 是公共文件夹来修复托管,并且不要使用一些建议移动或编辑 index.php 的黑客教程,因为这些都是不安全的并会导致其他类似的问题。

Snapey
2022-05-21

尝试将您的 laravel 脚本移至您的 Web 托管根目录(通常是 www、htdocs 或 public_html),然后重试。 通常,livewire 需要从 Web 托管的根目录而不是子目录加载 laravel。 检查所附图片,如果您在浏览器控制台中看到类似的错误,您就知道这是修复它的方法。

gravity02
2022-07-29