2014-02-28 28 views
9

我想包括像這樣在我的CSS自定義字體:Grails的2.3改變CSS字體面的網址,以「資源:/ ...」

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

的CSS是送達的Grails 2.3和CSS被修改成此

@font-face 
{ 
    font-family: TheFont; 
    src: url(resource:/css/fonts/fonts/SourceSansProLight.ttf); 
} 

生成的字體url方案是未知的,瀏覽器無法打開該文件。例如,Chrome報告:

GET resource:/css/fonts/fonts/SourceSansProLight.ttf net::ERR_UNKNOWN_URL_SCHEME 

/css/fonts也是原始URL的前綴。

我該如何指示Grails完全保留字體的URL?

+3

我通常使用相對於CSS文件本身的路徑 - 例如'../圖像/ foo.jpg'。 – nickdos

+1

你也可以嘗試http://grails.org/plugin/asset-pipeline插件,它會轉換引擎蓋下的路徑 – havenchyk

回答

15

的解決辦法是在Config.groovy中禁用CSS處理:

grails.resources.rewrite.css = false 

我發現尖端如何做到這一點的Grails mailing list

+0

我真的不知道這是做什麼,但我把它放在我的Config.groovy中,並開始拋出一個奇怪的錯誤 – IgniteCoders

5

一個更好的解決方案,我認爲是在提出dmahapatrohttps://stackoverflow.com/a/22849288/2286664

你需要確保你的字體文件是衆所周知的資源插件。

下面我Config.groovy工作對我來說,適應它根據你的路:

//grails.resources.adhoc.patterns = ['/images/*', '/css/*', '/js/*', '/plugins/*'] 
grails.resources.adhoc.includes = [ 
    '/images/**', '/css/**', '/js/**', '/img/**', '/fonts/**' 
] 

您需要進行此更改後運行grails clean

+0

與完全清理/編譯/運行應用程序拋出相同的錯誤 – IgniteCoders

+0

這最終是比上面列出的更好的答案。希望你的標記是正確的。 –