2017-04-02 117 views
0

那麼,我剛剛安裝了新鮮的Laravel 5.4。然後安裝npm並決定第一次使用webpack而不是gulp.js.如您所知,Laravel默認提供sass Bootstrap集成。使用這個命令從sass生成我的css。Laravel 5.4 - Bootstrap glyphicons在sass集成後不工作

npm run dev

引導,jQuery的工作完美,但沒有顯示Glyphicons。檢查我的public/css/app.css我看到了Glyphicons font-face path不適合。

src: url(/fonts/glyphicons-halflings-regular.eot?f4769f9bdb7466be65088239c12046d1); 

如果我,手動使用../fonts代替/fonts它會奏效。我試圖找出並編輯默認路徑。在_variables.css我設置:

$icon-font-path = "../fonts" - but npm gives error. 

默認情況下,它是:"~bootstrap-sass/assets/fonts/bootstrap/"

複製字體puclic/css文件夾文件夾裏面,沒有工作。

增加的選擇了webpack.mix.js文件:

options({processCssUrls: false}) 

_variables.css重新設置:

$icon-font-path = "../fonts" 

運行npm-run-dev和它的工作中,顯示出glyphicons。但是,我不想爲processCssUrls設置false。因爲,在這種情況下,我將無法使用命令來最小化css文件:npm run production

另外,我跟着這個問題,但找不到任何答案,所有的解決方案都無法正常工作。

glyphicons not showing with sass bootstrap integration

回答

1

最後,找到了解決辦法。在webpack.config.js集:代替Mix.resourceRoot

{ 
    test: /\.(woff2?|ttf|eot|svg|otf)$/, 
    loader: 'file-loader', 
    options: { 
     name: 'fonts/[name].[ext]?[hash]', 
     publicPath: Mix.resourceRoot 
    } 
}, 
+0

這終於爲我工作,但

publicPath: '../' 

,因爲我不想要編輯的'node_modules'文件夾中的配置文件直接我選擇複製整個文件到我的根文件夾並將'package.json'文件更改爲指向新配置:「dev」:「cross-env NODE_ENV = development node_modules/webpack/bin/webpack.js --progress --hide-modules - -config = node_modules/laravel-mix/setup/webpack.config.js「,改爲」dev「:」cross-env NODE_ENV = development node_modules/webpack/bin/webpack.js --progress --hide-module s --config = webpack.config.js「,」 –