【发布时间】:2021-08-13 10:52:31
【问题描述】:
我有一个使用 Inertia Js 和 VueJs 3 在 Jetstream 上运行的 Laravel 8 应用程序。
当我运行时:npm run prod
我收到此错误:
Exception
Unable to locate Mix file: /css/app.css. (View: /var/www/html/mysite/resources/views/app.blade.php)
http://subdomain.mysite.com/
更改后:
<link rel="stylesheet" href="{{ mix('css/app.css') }}">
到
<link rel="stylesheet" href="{{ asset('css/app.css') }}">
和:
<script src="{{ mix('js/app.js') }}" defer></script>
到
<script src="{{ asset('js/app.js') }}" defer></script>
效果很好。但这不是错的吗?用 mix 代替asset 有什么好处?
我也尝试过使用<link rel="stylesheet" href="{{ asset(mix('css/app.css')) }}">,但它仍然无法正常工作。我收到同样的错误,说 mix 无法找到文件:/css/app.css
这是一个简单的 Laravel 应用,没有任何自定义。
我试图运行npm run prod,希望页面大小会更小,但我看到的页面大小与npm run watch 或npm run dev (17Mb) 相同。
对于减小 VueJs Laravel 应用的页面大小有什么建议吗?
更新
webpack.mix.js 内容:
mix.js('resources/js/app.js', 'public/js').vue()
.postCss('resources/css/app.css', 'public/css', [
require('postcss-import'),
tailwindcss('tailwind.config.js')
])
.webpackConfig(require('./webpack.config'));
if (mix.inProduction()) {
mix.version();
}
mix-manifest.json 内容:
{
"/js/app.js": "/js/app.js",
"/css/app.css": "/css/app.css"
}
【问题讨论】:
-
您能否将
webpack.mix.js和public/mix-manifest.json添加到问题中? -
我添加了请求的详细信息。
-
我假设
mix-manifest.json反映了npm run dev。npm run prod应该显示资产的散列版本。使用散列版本时,您应该在视图中使用{{ mix('js/app.js') }}。包括前导斜线是否有区别,所以mix('/js/app.js')? -
这个建议没有帮助:“是否包括前导斜杠会有所不同,所以 mix('/js/app.js')”。我仍然收到:无法找到混合文件:/css/app.css。我将暂时使用asset('css/app.css') 和asset('js/app.js'),因为它运行良好。
-
我没有看到问题,但您没有发布 Tailwind 和 Webpack 配置文件或 package.json 文件。
标签: laravel vue.js npm laravel-mix inertiajs