2016-08-04 82 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被导入。