我正在尝试在本地系统中运行laravel应用。我遵循了https://gist.github.com/hootlex/da59b91c628a6688ceb1链接。我运行命令 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: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"
}
我无法解决它。请帮忙。谢谢
答案 0 :(得分:1)
您正在加载的刀片文件显然有mix('/css/vendor.css')
调用。您可以注释掉这一行,或者安装npm然后构建资产。
您的清单文件没有/css/vendor.css
,但是如果您检查刀片文件(views
),则会看到您正在调用mix('/css/vendor.css')
。因此,如果您找到并注释掉这行,您的问题将得到解决。
理想情况下,mix()
用于加载由webpack构建的资产。然后它将为您处理版本控制字符串。文档中详细介绍了如何使用mix。我不会在这里讨论这个问题。
您已通过运行npm run dev
或类似命令来构建资产。然后清单文件不包含那些资产映射。而且您的public
目录也没有这些资产。然后可以安全地假定您可以从刀片(mix
)文件中删除这些views
个调用。
如果您在public
目录中构建了资产,则可以通过assets
函数加载这些资产。
最后,您应该先了解自己的资产,然后再将其加载到您的网站。我的想法是,您不知道这些资产的来源,因此您不应该首先加载它们。
答案 1 :(得分:1)
这发生在我身上,在花了相当多的时间和精力之后,我确实设法弄清楚发生了什么以及如何解决它。
这是发生了什么:
webpack.mix.js
文件更新为您希望分别发布已编译的 JS 和 CSS 文件的目标。mix.js('resources/js/app.js', 'public/js').vue();
npm run dev
或 npm run watch
时,Mix 会编译并存储由此生成的 CSS 和 JS 文件在它们各自的目标文件夹中。laravel-app (Your laravel app root folder)
\public
\css
\app.css
\js
\app.js
Unable to locate Mix file: /js/app.js
(or)
Unable to locate Mix file: /css/app.css
在 Uncaught Exception 屏幕上值得注意的是,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 是您的应用根文件夹的名称。
但是,有一种方法可以解决这个问题。它直接输出到 Laravel's documentation。
为了使用自定义混合基 URL,您需要更新 config\app.php
文件以添加以下用于设置混合 URL 的配置值:
'mix_url' => env('MIX_ASSET_URL', 'localhost'),
在 mix_url
文件中设置 app.php
配置选项后,您现在应该可以通过在 MIX_ASSET_URL
文件中添加 .env
键并设置它来操作它为空白,以便它分别指向项目目录中的 \public\js\app.js
和 \public\css\app.css。
MIX_ASSET_URL=""
这为我解决了它。希望它也适合你。让我知道它是怎么回事。干杯!
答案 2 :(得分:0)
尝试运行npm install
,然后根据您使用的内容构建资产npm run dev
或npm run watch
。
答案 3 :(得分:0)
在package.json
文件中查找用于构建脚本和样式的命令,通常默认情况下将具有npm run dev
。可能会发生您需要运行的情况:
npm rebuild node-sass
npm run dev
或npm run watch