Javascript在heroku

时间:2016-01-03 19:15:40

标签: ruby-on-rails heroku

我正在使用Rails 4并在Heroku上部署了一个应用程序。我一直在本地预编译我的资产,但我的javascript没有按预期工作。

我的application.js文件看起来像这样('custom-scripts'包含我所有重要的功能):

//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//= require turbolinks
//= require jquery.slick
//= require custom-scripts
//= require_tree .

在“资源”选项卡下的Chrome开发工具中,我看到Frames / appname / Scripts / application.js与文件底部的“custom-scripts.js”中的代码一起存在。在Elements选项卡中,脚本标记链接到/assets/application.js,但在appname / assets /中的Sources选项卡下,我看不到application.js只有application.css。 我正在使用<%= javascript_include_tag 'application' %>代码,因此它应该正确链接吗?

我一直在阅读关于Assets管道的内容,我所看到的一切都说应该有所作为。我写了一个test()函数,它只返回我的自定义脚本文件中的console.log函数,当在Console选项卡中调用时,它返回'function not defined',这告诉我我的函数甚至没有运行某些原因。知道什么可能是错的吗?

2 个答案:

答案 0 :(得分:0)

<%= javascript_include_tag 'application' %>是的,它是正确的,但它只是预编译你的脚本。您是否尝试在assets/javascript中创建文件?如果user_controller.rb中有controller folder,我通常会创建一个与该控制器相关的咖啡脚本。 i.g users.js.coffee您可以在那里创建或调用自定义脚本:

$(document).ready ->
         ...

我希望它有助于交配。 GL

答案 1 :(得分:0)

我认为这更像是一个肮脏的修复,但它确实有效,所以现在这是我的解决方案;所以我从application.js中删除了//= require_tree .//= require custom-scripts,并将<%= javascript_include_tag 'custom-scripts' %>添加到我的application.html.erb文件中,然后再次运行rake assets:precompile,推送到github&amp; heroku和bam,它的工作非常好。