javascript - Assets 管道 - application.js 未编译/加载

标签 javascript ruby-on-rails-4 asset-pipeline sprockets

我正在将 Rails 4 与 Foundation 5 一起使用,但在让 javascript 工作时遇到问题。 Foundation 的导航栏菜单在移动设备中无法下拉,我遇到了麻烦 getting the jQuery datepicker to work 。在这个网站和 Google 上进行了一些搜索后,我认为问题可能是我使用的 sprockets 版本 2.1.2。但是升级后(现在版本为3.3.4)问题仍然没有解决。

我删除了 application.js 中的所有内容,并添加了一个函数来简单地将一个 div 附加到另一个 div 以检查文件是否正在加载,因此 application.js 现在看起来像这个:

//= require jquery
//= require jquery_ujs
//= require jquery-ui/datepicker
//= require foundation
//= require_tree .

$(function(){ $(document).foundation(); });

$(document).ready(function (){
  $('#test').append("<div class='test'>Test</div>");
});

不幸的是,div 没有被附加。我对 javascript 还很陌生,我不确定我还能做些什么来找出为什么没有加载 javascript。任何对此的帮助将不胜感激。

更多信息

当我尝试导航到 http://localhost:3000/assets/application.js 时,我得到以下信息:

throw Error("Sprockets::FileNotFound: couldn't find file 'self' with type 'application/javascript'\n (in /home/sheeka/Documents/workspace/my_projects/ruby/technical_tests/homestay/homestay_test/app/assets/javascripts/application.js:17)")

我可以以类似的方式启动 application.css.scss ,但我不完全确定这意味着什么。

根据要求:Github repo

最佳答案

查看文档 http://guides.rubyonrails.org/asset_pipeline.html

您需要包含 require_self在您的 application.js 文件中。
如果没有它,该文件中的函数将不会被加载。

更新

  1. 在您的 app/assets/javascripts/application.js 中更改//= require self//= require_self

  2. 您的$(document).ready函数没有被加载,因为 turbolinks gem .
    在您的应用程序布局中更改此行:
    <%= javascript_include_tag "application" 'data-turbolinks-track' => true %>

    <%= javascript_include_tag "application" %>

但是如果你想保留它,请看看这个 gem :https://github.com/kossnocorp/jquery.turbolinks

在使用 Turbolink 时,您需要了解一些差异,因此请查看他的文档。

关于javascript - Assets 管道 - application.js 未编译/加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32504702/

相关文章:

javascript - Modernizr 和 Video.h264

javascript - ajax post 成功后淡入淡出

javascript - 在 JavaScript 中将字节解释为打包的二进制数据

mysql - 验证另一个表中数据的唯一性

ruby-on-rails - 为什么我在 Rails 4/Postgres 中创建的所有表都使用 "dimension"of 1?

javascript - "jquery-Target has no method .css()"

javascript - Youtube 可以很好地与 Turbolinks 一起玩吗?

ruby-on-rails - heroku 上的 rails 应用程序中的 sass 错误 : can't dump anonymous class

css - 在 Rails Assets 管道中包含多个 LESS 文件

grails - 当 X-Forwarded-Proto 为 https 时,重定向位置包括 ":80"