【问题标题】:rails DataTables CSS doesn't get applied in Production moderails DataTables CSS 未在生产模式下应用
【发布时间】:2016-12-26 00:32:43
【问题描述】:

我正在使用带有 jquery-datatables-rails(3.4.0,最新)gem 的 Rails 5。

表格上的 CSS 在开发模式下呈现良好。我可以浏览 CSS 并看到它的格式如下:

http://localhost:3000/assets/dataTables/jquery.dataTables.self-MD5.css?body=1

但是,在生产模式下,不会应用任何样式。 CSS 都被“预编译”或混入: http://my.ip/assets/application-MD5.css

Chrome 可以加载远程应用程序-.css 文件。我验证了几个 CSS 类出现在开发模式 assets/dataTables/jquery.dataTables..css 和生产模式 assets/application*.css 中。喜欢,

/* line 265, /Users/rb/.rvm/gems/ruby-2.3.1@flv/gems/jquery-datatables-rails-3.4.0/app/assets/stylesheets/dataTables/jquery.dataTables.scss */
table.dataTable,
table.dataTable th,
table.dataTable td {
  -webkit-box-sizing: content-box;
  -moz-box-sizing: content-box;
  box-sizing: content-box;
}

我在生产应用程序*.css 中找到了相应的“table.dataTable td”,它看起来正确!

但 Chrome 和 Firefox 拒绝呈现它们。我究竟做错了什么?这是在 app/assets/stylesheets/application.css:

*= require_tree .
 *= require dataTables/jquery.dataTables
 *= require jquery-ui
 *= require_self

这是在生产模式的渲染头标签:

<link rel="stylesheet" media="all" href="/assets/application-MD5.css" data-turbolinks-track="reload" />

【问题讨论】:

  • 使用 Chrome Inspector 在开发模式下的外观:imgur.com/a/4uoaq 在没有 CSS 样式的 Prod 模式下的外观:imgur.com/a/s9p54 我刚刚尝试将 jquery-ui-rails 升级到 6.0.1,它没有影响。
  • 一个非常适合贫民区的解决方案我做了,但我不喜欢,将它包含在 layouts/application.html.erb 中:cdn.datatables.net/1.10.13/css/jquery.dataTables.min.css " />

标签: jquery css ruby-on-rails datatable


【解决方案1】:

最终奏效的解决方案:

  1. 创建一个一次性的新项目,rails new fakeProject

  2. 将所有 rake 资产管道设置从 fakeProject/config/environments/production.rb 复制到我的项目 config/environments/production.rb

  3. 推送到 git,使用 capistrano 部署

  4. 清除 chrome 中的缓存,重启 puma,查看 css 样式,获利$$$

不幸的是,我用于 rails 资产管道的其中一项设置让我很受不了。我从来没有弄清楚是哪一个,只是用核弹攻击了它们。

【讨论】:

    猜你喜欢
    • 2017-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-14
    • 2015-10-23
    • 1970-01-01
    • 2013-02-16
    • 1970-01-01
    相关资源
    最近更新 更多