2016-02-04 30 views
1

我的我的項目目錄的相關部分看起來是這樣的:如何在使用webpack時在css中加載字體?

root  
    --src  
    --js  
    --styles  
     --less 
     --main.less 
     --fonts 
     --Pixelated.tff 
    --webpack.config.js 

這是我webpack.config.js

var path = require('path'); 
var webpack = require('webpack'); 

module.exports = { 
    devtool: 'cheap-module-eval-source-map', 
    entry: [ 
    'webpack-hot-middleware/client', 
    './src/js' 
    ], 
    output: { 
    path: path.join(__dirname, 'dist'), 
    filename: 'bundle.js', 
    publicPath: '/static/' 
    }, 
    plugins: [ 
    new webpack.optimize.OccurenceOrderPlugin(), 
    new webpack.HotModuleReplacementPlugin(), 
    new webpack.NoErrorsPlugin() 
    ], 
    module: { 
    loaders: [{ 
     test: /\.js$/, 
     loaders: [ 'babel' ], 
     exclude: /node_modules/, 
     include: __dirname 
    }, { 
     test: /\.less?$/, 
     loaders: [ 'style', 'css', 'less' ], 
     include: __dirname 
    }, 
    {test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/, loader: "file-loader" }] 
    } 
}; 

在main.less相關的部分,這是相關的@ font-臉部分:

@font-face { 
    font-family: 'Pixelated'; 
    src: url('../fonts/Pixelated.ttf'); 
} 

我已經嘗試了幾個變種的webpack加載程序與各種github問題,我已經看過了無濟於事。我也嘗試過使用我的tff字體文件的絕對路徑來驗證概念,但這也不起作用,我想這一定與我的webpack安裝有關。

+0

您是否嘗試過file-loader:{test:/\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])? $ /,loader:「file-loader」}, – Aaleks

+0

是的,我得到'模塊未找到:錯誤:無法解析'文件'或'目錄'../ fonts/Pixelated.tff'在生成 –

+0

你能提供一段你的代碼扔github或其他有點難以說這樣的話。 webpack.config.js位於哪裏? – Aaleks

回答

0

更改

{ 
     test: /\.less?$/, 
     loaders: [ 'style', 'css', 'less' ], 
     include: __dirname 
    }, 

{ 
    test: /(\.less|\.css)$/, 
    loaders: [ 'style', 'css', 'less' ], 
} 

它應該工作,main.css的文件是一個CSS,你需要使用適當的裝載機爲該類型的文件。

+0

我之前應該提到它,在問這個問題的過程中,我完全無法改變。 main.css現在是main.less –

+1

我爲我做了一個小項目,如果它是一個少文件你的配置應該工作,因爲它是:https://www.dropbox.com/sh/kwfcfbuq0spc2ew/AADxYK4Sql3kw5Q7UcBv1E-Ua/test- css?dl = 0 我在src/js中創建了一個main.js文件,它需要加載.ttf – Aaleks

+0

的main.less,但是我沒有看到實質性差異。我想知道這個問題是否在其他地方。謝謝你的努力,我真的很感激它 –