2016-08-04 80 views
1

我遇到了一些我認爲在我的應用程序中安裝dataTables插件時非常奇怪的東西。我在軌道上使用紅寶石4.2。DataTables排序圖標不顯示沒有縮小的CSS

如果我的資產中只有縮小的或僅縮小的js和css jquery.dataTables文件,則排序圖標無法正確加載。
我收到RoutingError (No route matches [GET] "/images/sort_desc.png")。我見過其他人討論這個錯誤,但實際上沒有看到一個好的解決方案。 如果我更改路徑以檢索jquery.dataTables.css或文件的最小版本中的圖像,我仍然會得到相同的錯誤。錯誤消息中的路徑不會更改!

奇怪的是,如果我使用min.css和常規的js文件,排序圖標加載正常! 回顧: jquery.dataTables.min.css & jquery.dataTables.js:WORKS

jquery.dataTables.css & jquery.dataTables.js:不工作

jquery.dataTables.min.css & jquery.dataTables.min.js:不工作

jquery.dataTables.css & jquery.dataTables.min.js:不工作

我把這些文件在0裏面,../javascripts, ../images。 這是怎麼回事?

+0

你在生產模式下運行它?如果是這樣,請確保您預編譯了您的資產。 – siegy22

+0

目前我只是在開發中運行這個。此外,默認情況下,rails會在供應商/資產下的所有目錄中添加文件。如果我在控制檯中運行'Rails.application.config.assets.paths',我可以看到'/ vendor/assets/images','/ vendor/assets/stylesheets'和'/ vendor/assets/javascripts'添加。 – Kaitrono

+0

在視圖中嘗試'image_tag(「sort_desc.png」)''。 (通常在DEV中,資產位於'/ assets/image.png','/ assets/javascript.js'等。 – siegy22

回答

0

我能弄明白這一點。您需要覆蓋jquery.dataTables.css中使用的網址。我也創建了一個新的CSS文件中的供應商/資產/樣式表內,並輸入了以下:

table.dataTable thead .sorting { 
    background-image: image-url("sort_both.png"); 
} 
table.dataTable thead .sorting_asc { 
    background-image: image-url("sort_asc.png"); 
} 
table.dataTable thead .sorting_desc { 
    background-image: image-url("sort_desc.png"); 
} 
table.dataTable thead .sorting_asc_disabled { 
    background-image: image-url("sort_asc_disabled.png"); 
} 
table.dataTable thead .sorting_desc_disabled { 
    background-image: image-url("sort_desc_disabled.png"); 
} 

這個工程假設你放置你的圖像供應商/資產/圖像,你也該數據表後導入你的CSS覆蓋文件css被導入。