找不到文件'dataTables/jquery.dataTables' Rails 4
Posted
技术标签:
【中文标题】找不到文件\'dataTables/jquery.dataTables\' Rails 4【英文标题】:couldn't find file 'dataTables/jquery.dataTables' Rails 4找不到文件'dataTables/jquery.dataTables' Rails 4 【发布时间】:2013-11-12 06:47:26 【问题描述】:我正在按照 rails casts #340 在我的应用程序中实现数据表。
按照所有步骤我得到这个错误: 找不到文件“dataTables/jquery.dataTables”
我正在使用 rails 4,我发现教程中提到的一些文件我必须创建,例如 application.css 和 products.js.coffee
宝石文件
gem 'jquery-rails'
group :assets do
gem 'jquery-datatables-rails', github: 'rweng/jquery-datatables-rails'
gem 'jquery-ui-rails'
end
应用程序.js
//= require jquery
//= require dataTables/jquery.dataTables
//= require_tree .
Application.js.coffee
/*
* This is a manifest file that'll automatically include all the stylesheets available in this directory
* and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
* the top of the compiled file, but it's generally better to create a new file per style scope.
*= require_self
*= require dataTables/jquery.dataTables
*= require_tree .
*/
和 rails 4 一样,我在 /layouts/application.html.erb 中添加了对样式表的调用
<%= stylesheet_link_tag 'application.css', media: 'all' %>
和产品/index.htm.erb
<table class="table table-normal" id="products" >
<thead>
<tr>
<td>Code</td>
<td>Name</td>
<td>Description</td>
<td>Price</td>
<td>Stock</td>
<td>Enabled</td>
<td>Company</td>
</tr>
</thead>
<tbody>
<% @products.each do |product| %>
<tr>
<td style="text-decoration: underline;"><%= link_to product.code, edit_product_path(product) %></td>
<td><%= product.name %></td>
<td><%= product.description %></td>
<td><%= product.price %></td>
<td><%= product.stock %></td>
<td><%= product.enabled %></td>
<td><%= product.company_id %></td>
</tr>
<% end %>
</tbody>
</table>
我在输出中收到此错误
找不到文件“dataTables/jquery.dataTables” (在 ....app/assets/stylesheets/application.css:6 中)
任何想法如何解决这个问题? 提前致谢
【问题讨论】:
我采取了简单的方法,将 gem 中的 css 和 js 直接复制到我的 assets/stylesheets 和 assets/javascript 文件夹中...我对“找不到文件”没有耐心错误! 【参考方案1】:Rails 4 中不再有 :assets 组,因此只需将宝石从该块中取出即可。
【讨论】:
抱歉忘记重启服务器,但还是看不到搜索框和列中的订单选项 好的,问题解决了。关于搜索框和其他内容 - 请粘贴用于初始化数据表的代码。 在 /products/index.html.erb<table id="products" class="display" data-source="<%= products_url(format: "json") %>">
和 /javascripts/products.js 中的初始化程序 jQuery -> $('#products').dataTable()
和铁轨中的一样【参考方案2】:
看看这个related question。我最近遇到了类似的问题,我的发现可能会对您有所帮助。
我看到您提到您必须创建一个application.css
文件,但您没有说明您是否在其中填充了任何内容。您可以尝试添加:
*= require jquery.dataTables
到application.css
并在 .app/assets/datatables 中包含jquery.dataTables.css
的副本,这样您就可以为 DataTables 设置样式以匹配应用程序的其余部分。
进行这些更改将解决“找不到文件”错误,因为 Rails 正在寻找一个 CSS 文件:a) 不存在;或 b) 在您的 application.css
文件中指定的位置不存在。
此外,您不应将stylesheet_link_tag
添加到您的application.html.erb
文件中。资产管道的全部意义在于,turbolinks 将根据您在 application.css
中指定的内容将资产(如样式表)添加到您的页面。
【讨论】:
谢谢 - 但我的 .app/assets/datatables 目录中似乎没有任何内容 - 关于它发生了什么的任何线索?我的 Datatable 似乎工作正常,但是当我运行 rspec 时,它给了我这些错误 @BKSpureon 您可能希望将您的半相关但不同的问题作为一个问题单独发布,而不是将其隐藏在对两年半前答案的评论中。我可以确切地告诉你发生了什么,但我宁愿以一种允许后续用户在他们期望的地方找到答案的方式这样做。 谢谢。对于那些将来阅读的人 - 找到了答案 - 我正在运行 rspec 并将相关的 gem 添加到测试环境中:问题已解决!以上是关于找不到文件'dataTables/jquery.dataTables' Rails 4的主要内容,如果未能解决你的问题,请参考以下文章