Php Laravel混合禁用url()的文件加载程序

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:

Laravel 5.4引入了带有网页包的Laravel mix。对于在laravel mix中使用图像,没有明确的文档(例如,它是如何工作的,以及如何根据我们的需要对其进行定制)。由于它没有像我预期的那样工作,我想在我当前的项目中禁用它

我怎样才能禁用它

我已尝试删除webpack.config.js中的以下代码:

{
     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。您可以在此处检查版本号: