Php Livewire 404:获取http://localhost/livewire/livewire.js net::ERR_中止404(未找到)
我正在学习如何使用livewire和laravel,我试图通过输入绑定一些数据 我写了这段代码: home.blade.php:Php Livewire 404:获取http://localhost/livewire/livewire.js net::ERR_中止404(未找到),php,html,laravel,laravel-livewire,Php,Html,Laravel,Laravel Livewire,我正在学习如何使用livewire和laravel,我试图通过输入绑定一些数据 我写了这段代码: home.blade.php: <html> <head> <title>Home</title> @livewireStyles </head> <body> @livewire("hello-world") @livewireScripts </body>
<html>
<head>
<title>Home</title>
@livewireStyles
</head>
<body>
@livewire("hello-world")
@livewireScripts
</body>
</html>
<div>
<input wire:model="nome" type="text">
<br>
Hello {{ $nome }}
</div>
hello-world.blade.php:
<html>
<head>
<title>Home</title>
@livewireStyles
</head>
<body>
@livewire("hello-world")
@livewireScripts
</body>
</html>
<div>
<input wire:model="nome" type="text">
<br>
Hello {{ $nome }}
</div>
HelloWorld.php:
<?php
namespace App\Http\Livewire;
use Livewire\Component;
class HelloWorld extends Component
{
public $nome = 'Name';
public function render()
{
return view('livewire.hello-world');
}
}
它在Apache2.4上运行
但如果在加载页面时打开浏览器控制台,则会得到:
索引:29http://localhost/livewire/livewire.js?id=c1db26b321e994f87254 net::ERR_中止404未找到
索引:35未捕获引用错误:未定义Livewire
索引:35
我正在关注官方文档和屏幕广播,我试图一步一步地遵循所有的说明,但也没有奏效。
也许我在安装过程中做错了什么,但我不这么认为,因为我刚刚点击了:
编写器需要livewire/livewire
所以应该没问题。
有什么线索吗
GitHub repo:我也在学习Laravel Livewire,我也遇到了同样的问题。 我的问题通过跑步解决了 php artisan供应商:publish-force-tag=livewire:assets
您可以在github上查看此链接:我也在学习Laravel Livewire,我也遇到了同样的问题。 我的问题通过跑步解决了 php artisan供应商:publish-force-tag=livewire:assets
您可以在github上查看此链接:虽然Zenabus.dev的答案现在列在Livewire文档中作为最佳实践,但我觉得这只是一个解决办法,并没有说明为什么需要这样做,所以我想我会对此进行详细说明,并描述404的常见原因以及您有哪些其他选择 默认情况下,Livewire为Livewire/Livewire.js注册一个路由,并要求该URL的请求通过Laravel路由。LivewireJavaScriptAssets控制器随后将从供应商目录中提取该文件并将其提供给用户 如果在开发系统上一切正常,并停止像我一样在生产环境中工作,那么您的服务器/vhost配置Apache、Nginx。。。为Javascript文件设置了一个特殊的处理集,它将干扰此过程,并将尝试直接从您的文档根目录提供这些文件,有效地绕过Laravel 请检查您的服务器配置,并确保确实通过public/index.php文件通过Laravel路由 如果不是,则可以删除对js文件的任何特殊处理,确保仅当文件实际存在时才应用规则,或者如果不能这样做,则可以按照中所述发布资产
作为一个侧节点,我个人不会像文档中描述的那样在自动加载后转储上添加publish命令,而是在更新后cmd上添加publish命令。我不喜欢在生产服务器上发布资产,我宁愿只在需要时在开发人员系统上发布资产,然后将公共文件推送到存储库。而Zenabus.dev的答案现在列在Livewire文档中作为最佳实践,我觉得这只是一个解决办法,并没有说明为什么需要这样做,所以我想我会详细说明一下,并描述一下404的常见原因以及您还有哪些其他选择 默认情况下,Livewire为Livewire/Livewire.js注册一个路由,并要求该URL的请求通过Laravel路由。LivewireJavaScriptAssets控制器随后将从供应商目录中提取该文件并将其提供给用户 如果在开发系统上一切正常,并停止像我一样在生产环境中工作,那么您的服务器/vhost配置Apache、Nginx。。。为Javascript文件设置了一个特殊的处理集,它将干扰此过程,并将尝试直接从您的文档根目录提供这些文件,有效地绕过Laravel 请检查您的服务器配置,并确保确实通过public/index.php文件通过Laravel路由 如果不是,则可以删除对js文件的任何特殊处理,确保仅当文件实际存在时才应用规则,或者如果不能这样做,则可以按照中所述发布资产 作为一个侧节点,我个人不会像文档中描述的那样在自动加载后转储上添加publish命令,而是在更新后cmd上添加publish命令。我不喜欢在生产服务器上发布资产,我宁愿只在需要时在开发人员系统上这样做,然后将公共文件推送到存储库。您可以尝试以下方法: 运行:php artisan livewire:发布 然后打开config/livewire.php 将'asset\u url'=>null更改为'asset\u url'=>'http://localhost“您可以试试这个: 运行:php artisan livewire:发布 然后打开config/livewire.php
将'asset\u url'=>null更改为'asset\u url'=>'http://localhost“在我的例子中,wepe的评论是有效的,只是没有“asset\u url”=>”http://localhost“我放了一个”
sset_url'=>url'/'在我的例子中,wepe的评论是有效的,只是没有“asset_url'=>”http://localhost“我将‘asset_url’=>url'/'让我们深入研究并找到解决方案。” 您可以从“网络”选项卡查看您的请求url 得到http://localhost/livewire/livewire.js net::ERR_中止 您的基本url 得到http://localhost/ 应该是 得到http://localhost/your_project_directory 现在更正url 得到http://localhost/your_project_directory/livewire/livewire.js 或 得到http://localhost/your_project_directory/public/livewire/livewire.js 解决方案: app/config/livewire.php “资产url”=>env“应用程序url”http://localhost", 同时在.env文件中相应地更新APP_URL 您应该清除缓存和配置
那就试试吧,我希望这能解决问题让我们深入研究并找到解决办法 您可以从“网络”选项卡查看您的请求url 得到http://localhost/livewire/livewire.js net::ERR_中止 您的基本url 得到http://localhost/ 应该是 得到http://localhost/your_project_directory 现在更正url 得到http://localhost/your_project_directory/livewire/livewire.js 或 得到http://localhost/your_project_directory/public/livewire/livewire.js 解决方案: app/config/livewire.php “资产url”=>env“应用程序url”http://localhost", 同时在.env文件中相应地更新APP_URL 您应该清除缓存和配置
然后尝试我希望这将解决问题以下命令将资产发布到您的公用文件夹,并应解决404问题
php artisan vendor:publish --force --tag=livewire:assets
@livewireScripts blade指令仍然是必需的,但它会自动从/public/vendor/livewire/livewire.js正确地获取资产。下面的命令将资产发布到您的公用文件夹中,应该可以解决404问题
php artisan vendor:publish --force --tag=livewire:assets
@livewireScripts blade指令仍然是必需的,但它会自动正确地从/public/vendor/livewire/livewire.js中获取资产。请将代码复制并粘贴到您的问题中,而不是链接到它。很抱歉,我无意中发布了一个不完整的问题。你的应用程序运行的帖子是什么意思?好的,先生,我发布了@RWD您使用的是什么版本的Livewire?您的应用程序正在运行什么帖子。?请将代码复制并粘贴到您的问题中,而不是链接到它。很抱歉,我无意中发布了一个不完整的问题。你的应用程序运行的帖子是什么意思?好的,先生,我发布了@RWD您使用的是哪个版本的Livewire?编辑:这在生产中不起作用,最好在开发模式下使用完整路径编辑:这在生产中不起作用,最好在开发模式下使用完整路径这会获取Livewire.js仍然缺失的资产,我使用的是livewire.js.map文件,而这会获取livewire.js仍然丢失的资产,我使用的是livewire.js.map文件