Php 未捕获异常:找不到混合文件
我正在尝试在本地系统中运行laravel应用程序。我已经跟踪了链接。我运行命令php artisan serve并在浏览时生成错误Php 未捕获异常:找不到混合文件,php,laravel,webpack,Php,Laravel,Webpack,我正在尝试在本地系统中运行laravel应用程序。我已经跟踪了链接。我运行命令php artisan serve并在浏览时生成错误 PHP Fatal error: Uncaught Exception: Unable to locate Mix file: /css/vendor.css. Please check your webpack.mix.js output paths and try again. in /var/www/html/laravel-app/app/helpers.
PHP Fatal error: Uncaught Exception: Unable to locate Mix file: /css/vendor.css. Please check your webpack.mix.js output paths and try again. in /var/www/html/laravel-app/app/helpers.php:439
在helpers.php的指定行中,它具有
if (! isset($manifest[$path])) {
throw new Exception(
"Unable to locate Mix file: {$path}. Please check your ".
'webpack.mix.js output paths and try again.'
);
}
public/mix manifest.json
{
"/mix.js": "/mix.js"
}
我弄不清楚。请帮忙。谢谢您正在加载的刀片文件显然有
混合('/css/vendor.css')
调用。您可以注释掉这一行或安装npm,然后构建资产
你的清单文件没有/css/vendor.css
,但是如果你检查你的刀片文件(视图
),你会看到你正在调用混合('/css/vendor.css')
。因此,如果您找到并注释这一行,您的问题将得到解决
理想情况下,mix()
用于加载webpack生成的资产。然后,它将为您处理版本控制字符串。文档中详细说明了如何使用。我不想在这里讨论这个问题
您已经通过运行npm run dev
或类似命令构建了资产。然后清单文件不包含这些资产映射。而您的public
目录也没有这些资产。然后可以安全地假设您可以从刀片(视图
)文件中删除这些混合
调用
如果在public
目录中构建了资产,则可以通过assets
功能加载这些资产
最后,在将资产加载到站点之前,您应该首先了解它们。我认为您不知道这些资产来自何处,因此不应该首先加载它们。尝试运行
npm install
,然后构建资产,或者npm run dev
或者npm run watch
,取决于您使用的内容。检查package.json
文件以获取用于生成脚本和样式的命令,通常默认情况下,您将有:npm run dev
。您可能需要运行以下程序:
npm重建节点sass
或npm运行开发
npm运行监视
- 将
文件更新为您希望分别发布编译后的js和CSS文件的目标webpack.mix.js
- 当您运行
或npm-run-dev
时,Mix编译因此生成的CSS和JS文件并将其存储在各自的目标文件夹中npm-run-watch
- 当您在浏览器中使用(如Valet)打开应用程序时,Laravel会弹出以下错误消息:
localhost:8080
上查找文件。暗示Laravel分别在以下位置查找文件:
localhost:8080\css\app.css
(and)
localhost:8080\js\app.js
因此,如果您的主机名或端口不是localhost:8080
,Laravel将无法找到您的文件。例如,如果您正在使用Valet,您的默认URL将成为laravel app.test
,其中laravel app是应用程序根文件夹的名称
但是,有一种方法可以解决这个问题。它直接向我们展示
解决方案(TL;DR)
为了使用自定义混合基本URL,您需要更新config\app.php
文件,以添加以下用于设置混合URL的配置值:
'mix_url' => env('MIX_ASSET_URL', 'localhost'),
在app.php
文件中设置了mix_url
config选项后,您现在应该可以通过在.env
文件中添加mix_-ASSET_url
键并将其设置为空来操作它,使其分别指向\public\js\app.js
和\public\css\app.css,在项目目录中
MIX_ASSET_URL=""
这为我解决了问题。希望它也能为你的健康服务。让我知道怎么回事。干杯 运行命令生成器更新您是如何完成此步骤的?>从git provider拉取Laravel/php项目。我拉取了一个用php开发的项目。LaravelI执行了commad composer更新,但显示了相同的错误。错误消息清楚地显示了缺少的内容。前端是建立在这个项目内的网页。检查网页包的要求。在
webpack.mix.js
中,您将看到一个路径指定给/css/vendor.css
您的文件夹中是否缺少此文件?并生成了您的资产npm-run-dev
能否显示mix-manifest.json
文件?它应该在您的public
目录中。请参阅,您的清单文件没有/css/vendor.css
,但如果您检查刀片文件(视图),您将看到您正在调用mix('/css/vendor.css')
。所以,如果你找到这一行并加以评论,你的问题就会得到解决。是的,你已经完全正确了。在其中一个刀片文件中,有css/vendor.css、css/app.css、js/vendor.js。。。那些台词是干什么的?如果我评论这些行会有什么问题吗?更新了答案。
localhost:8080\css\app.css
(and)
localhost:8080\js\app.js
'mix_url' => env('MIX_ASSET_URL', 'localhost'),
MIX_ASSET_URL=""