php - Laravel Mix 为 url() 禁用文件加载器

标签 php laravel webpack laravel-5.4

Laravel 5.4 引入了 laravel mix 和 webpack。没有关于在 laravel mix 中处理图像的明确文档(例如,它是如何工作的以及如何根据我们的需要对其进行自定义)。由于它没有像我预期的那样工作,我想为我当前的项目禁用它。

我怎样才能禁用它?

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

{
     test: /\.(png|jpg|gif)$/,
     loader: 'file-loader',
     options: {
         name: '[name].[ext]?[hash]'
      }
}

但是运行命令 npm run dev 会产生这个错误:

You may need an appropriate loader to handle this file type.

最佳答案

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-loader 解释为导入.目前 CSS-Loader 是一种全有或全无的方法,所以我们需要禁用所有 url() 处理,这样做......

打开 node_modules\laravel-mix\setup\webpack.config.js 并进行以下更改,

{ loader: 'css-loader' + sourceMap },

替换为

{ loader: 'css-loader?url=false' + sourceMap.replace("?", "&") },

方案二:在url()中使用绝对链接

/ 开头的 URL 将不会被处理例如:url(/images/something.jpg)。如果你的项目支持以/开头的url,你可以直接使用,不会有任何问题。

关于php - Laravel Mix 为 url() 禁用文件加载器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41907468/

相关文章:

css - 页面刷新时延迟加载 css (Webpack)

javascript - 通知用户在 SPA 网站上刷新浏览器的正确方法是什么(当 .js 文件更改时)

PHP Prepared Statement MySQL in-function with integers not string

PHP:代码被转换为 HTML <!-- 评论? -->

mysql - Laravel 中如何将行转换为列

php - MySQL:A100000 和 A200000 之间

php - Laravel 将数据计数附加到数据库对象

javascript - 如何在 Adob​​e Muse 中将 iframe 滚动到顶部?

php - PHP 中的 URL 转换

reactjs - 错误 : Unknown option '--output' React & Django