Php Laravel混合禁用url()的文件加载程序
Laravel 5.4引入了带有网页包的Laravel mix。对于在laravel mix中使用图像,没有明确的文档(例如,它是如何工作的,以及如何根据我们的需要对其进行定制)。由于它没有像我预期的那样工作,我想在我当前的项目中禁用它 我怎样才能禁用它 我已尝试删除webpack.config.js中的以下代码:Php Laravel混合禁用url()的文件加载程序,php,laravel,webpack,laravel-5.4,Php,Laravel,Webpack,Laravel 5.4,Laravel 5.4引入了带有网页包的Laravel mix。对于在laravel mix中使用图像,没有明确的文档(例如,它是如何工作的,以及如何根据我们的需要对其进行定制)。由于它没有像我预期的那样工作,我想在我当前的项目中禁用它 我怎样才能禁用它 我已尝试删除webpack.config.js中的以下代码: { test: /\.(png|jpg|gif)$/, loader: 'file-loader', options: { name:
{
test: /\.(png|jpg|gif)$/,
loader: 'file-loader',
options: {
name: '[name].[ext]?[hash]'
}
}
但是运行命令npm run dev
会产生以下错误:
您可能需要适当的加载程序来处理此文件类型
Laravel Mix版本0.8及以上
与laravel mix v0.8一样,也有简单的api选项。要禁用url()文件加载程序,请在webpack.mix.js
mix.options({
processCssUrls: false
});
Laravel Mix版本0.7及以下
解决方案1:禁用url()处理
url()的解释方式与导入方式类似。目前CSS加载器是一种全有或全无的方法,所以我们需要禁用所有url()处理,才能做到这一点
打开node\u modules\laravel mix\setup\webpack.config.js
并进行以下更改
{ loader: 'css-loader' + sourceMap },
替换为
{ loader: 'css-loader?url=false' + sourceMap.replace("?", "&") },
解决方案2:在url()中使用绝对链接
以
/
开头的url将不会被处理,例如:url(/images/something.jpg)
。如果您的项目支持url以/
开头,则可以按原样使用,不会出现任何问题。您在哪里使用图像?它是否在您的sass
和less
文件中?是的,在sass文件中。如果问题仍然存在,这可能会有所帮助,loaders
的要点是让webpack
了解如何处理javascript
以外的文件内容。因此,删除图像
的加载程序对捆绑图像
的网页
没有帮助。实际上,图像url处理存在错误,这些错误在0.8之后的版本中已修复,因此最好的建议是使用最新的laravel mix版本更新package.json配置(不要忘记运行npm install
),然后将mix.options({processCssUrls:false});
添加到您的webpack.mix.js。您可以在此处检查版本号: