scr*_*tat 5 ruby-on-rails apache2 asset-pipeline ruby-on-rails-3.2
编辑: 结果我的初始问题不再准确 - 问题与dataTables gem没有直接关系,我相信这与我的Apache2配置有关.
我似乎有一个问题,jquery-datatables-rails gem与rails资产管道很好地配合.
这个问题最初看起来与这个问题类似,但是从那里出现解决方案的明显路径并没有愉快地解决问题.
gem在我的Gemfile中,根据railscast第340集中的指示为我的一个html表安装和实现.在开发模式下运行应用程序,bundle exec rails s工作正常,并且所有dataTables功能都出现在网站上没有问题.
当我尝试在生产环境中运行网站时 - 使用capistrano或只是bundle exec rails s -e production- 在预编译资产之后,不使用编译的文件,尽管它们都会编译为公共/资产.
当使用config.assets.compile = true代替预编译时,它似乎也没有显示dataTables功能.(我相信这两者是对立的,但我可能会误解)
当我进入页面并查看js错误控制台时,没有错误,它只是呈现计划html表.
我无法弄清楚是什么导致网页无法呈现dataTables,我尝试的每一次搜索都在上面链接的问题上加上一遍又一遍的其他五个页面.这些解决方案似乎都不是我的铁杆野兽所渴望的.
你们中的任何人都对问题可能有什么了解吗?
部分相关文件:
应用程序/资产/ Java脚本/ charts.js.coffee:
jQuery ->
$('#charts').dataTable({
"oSearch": {"bSmart": "true", "sSearch": "vdo"}
"iDisplayLength": 50
})
Run Code Online (Sandbox Code Playgroud)
应用程序/资产/ JavaScript的/ application.js中
//= require jquery
//= require jquery_ujs
//= require dataTables/jquery.dataTables
//= require_self
//= require_tree .
Run Code Online (Sandbox Code Playgroud)
应用程序/资产/样式表/ application.css
*= require_self
*= require dataTables/jquery.dataTables
*= require_tree .
Run Code Online (Sandbox Code Playgroud)
config/environments/production.rb:
PerfGrapher :: Application.configure do#这里指定的设置优先于config/environment.rb中的设置
# Compress JavaScript and CSS
config.assets.compress = true
# make sure to compile js and css assets
config.assets.precompile += %w(*.js *.css)
# Generate digests for assets URLs
config.assets.digest = true
# disable static asset server
config.serve_static_assets = false
config.compile = false
Run Code Online (Sandbox Code Playgroud)
结束
我的 application.css.scss 文件具有以下行
*= require dataTables/src/demo_table_jui
Run Code Online (Sandbox Code Playgroud)
代替
*= require dataTables/jquery.dataTables
Run Code Online (Sandbox Code Playgroud)
这可能只是因为我也使用 JQuery UI(bJQueryUI: true 被传递到咖啡脚本文件中的 dataTable() )
它在生产中运行良好,具有资产管道,使用 Rails 3.2.6。