2017-04-09 55 views
1

我試圖設置與內部URL處理的Larvel混合,但不知何故它破壞了我所有的文件路徑。 舉例來說,如果我在app.scss使用圖標:Laravel混合URL處理扭曲文件路徑

background-image: url("../icons/search.svg"); 

每次我在app.css得到

background-image: url(/fonts/search.svg?0aeb120951582cc56d9d8681f88ff583); 

相應的文件也被複制到公共/字體/和我只是不知道,這個文件夾悄悄進入我的路徑。 在我的webpack.mix.js中我沒有什麼特別的。

mix.js('resources/assets/js/app.js', 'public/js') 
.sass('resources/assets/sass/app.scss', 'public/css') 

有沒有人有這種問題?

回答

2

這是因爲Laravel-mix默認會優化相關樣式表url()。

要禁用此功能,請轉到您的項目根目錄中的webpack.mix.js

地址:

mix.options({ 
    processCssUrls: false 
}); 

不過,如果你使用的引導,青菜,這將導致它的Glyphicons字體無法正常工作。

爲了解決這個問題,去resources\assets\sass\_variables.scss

變化$icon-font-path:"../fonts/vendor/[email protected]@bootstrap-sass/bootstrap/";

+0

謝謝,這也是我的第一個想法。但有什麼方法可以重寫這個默認設置嗎?我的意思是,除了建立路徑這個問題之外,這個特性非常有用。 –

+0

謝謝解決了我的問題。你是怎麼找到的?是否有任何文檔或您是否通過laravel組合代碼? – TecBeast

+0

@TecBeast我在laravel mix的文檔中找到它。這是一個npm包。見[這裏](https://github.com/JeffreyWay/laravel-mix/blob/master/docs/css-preprocessors.md) –