【问题标题】:Asset pipeline - application.js not compiled/loaded资产管道 - application.js 未编译/加载
【发布时间】:2015-09-10 14:29:49
【问题描述】:

我正在使用带有基础 5 的 Rails 4,但无法让 JavaScript 正常工作。 Foundation 的导航栏菜单不会在移动设备中下拉,我遇到了麻烦getting the jQuery datepicker to work。在这个网站和谷歌上搜索了一下之后,我认为问题可能是我使用的是 sprockets 2.1.2 版。但是升级后(现在是3.3.4版本)问题还是没有解决。

我删除了 application.js 中的所有内容,并添加了一个函数来简单地将一个 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: 找不到文件'self' 键入“应用程序/javascript”\n(在 /home/sheeka/Documents/workspace/my_projects/ruby/technical_tests/homestay/homestay_test/app/assets/javascripts/application.js:17)")

我以类似的方式提出application.css.scss 没有问题,但我不完全确定这意味着什么。

根据要求:Github repo

【问题讨论】:

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


    【解决方案1】:

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

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

    更新

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

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

      &lt;%= javascript_include_tag "application" %&gt;

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

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

    【讨论】:

    • 感谢您的反馈,但不幸的是这并不能解决我的问题。
    • 至少你的 div 被附加到了你的#test 元素中?
    • 不,不是。我的测试元素只包含在我开始尝试调试 js 之前存在的表单
    • @SoSimple 如果可以的话,请将你的代码发布到github或者其他地方,我们可以看看
    • 抱歉耽搁了,我已经用 github 存储库的链接更新了我的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-27
    • 2012-02-06
    • 1970-01-01
    • 2012-10-01
    • 2019-09-18
    • 1970-01-01
    相关资源
    最近更新 更多