2016-11-24 83 views
0

我爲我的項目使用laravel 5.3angular 2並使用webpack編譯資產,包括js and cssAngular 2 base_href鏈接資產問題

我想爲客戶端和管理區域使用相同的font awesome and bootstrap

我擁有laravel的文件夾結構,裏面的東西都是js directory

|-public 
    |-js 
     |-assets 
     |-fontawesome-webfonts.woff 
     |-image1.png 
     |-vendor.bundle.js 
     |-polyfill.bundle.js 

角形2路,我們需要將base href添加到我還增加了主模板。

<base href="/"> 

管理員URL是localhost:8000/admin

和用戶網址爲localhost:8000

我已經包括像

{!! Html::script('js/vendor.bundle.js') !!} 

和供應商提供的軟件包已導入less文件爲:

個vendor.bundle.js

import 'admin-lte/build/less/AdminLTE.less'; 
import 'font-awesome/less/font-awesome.less'; 

的主要問題是,由於它加載的字體從js/assets/fontawesome-webfonts.woff但是當我使用相同的vendor.bundle.js給用戶和管理頁面的用戶頁面工作正常,當我加載管理員頁面無法加載字體,因爲它從admin/js/assets/fontawesome-webfonts.woff搜索不正確的目錄。

我怎樣才能使兩個網址的角度搜索到js/assets/fontawesome-webfonts.woff

問題也顯示在圖像中。

Assets linking issue

回答

0

我只是用url-loader webpack plugin琢磨出來自己幹。

您應該保留原來的href並配置資產。

我只需要只爲fonts

{ 
    test: /\.(svg|woff|woff2|ttf|eot)$/, 
    loader: 'url-loader?limit=10000&name=assets/[hash].[ext]&publicPath=/js/' 
} 

你需要指定publicPath和其他目錄添加到name添加一個新的考驗。

就是這樣。希望它能節省一些人的寶貴時間。

注意:不要忘記公共路徑前面的'/'