2016-01-03 162 views
0

我正在使用Rails 4并在Heroku上部署应用程序。我一直在本地预编译我的资产,但是我的JavaScript没有按预期工作。Javascript未按预期部署在heroku上的ruby rails应用程序运行

我的application.js文件看起来像这样(“自定义脚本”有我的所有重要功能吧):

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

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

我一直在阅读有关资产管道和我看到的一切说,一切都应该工作。我写了一个test()函数,它只是在我的自定义脚本文件中返回一个console.log函数,并且在控制台选项卡中调用时,它会返回'函数未定义',以便告诉我由于某种原因,我的函数甚至没有运行。任何想法可能是错的?

回答

0

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

0

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

$(document).ready -> 
     ... 

我希望它可以帮助队友。 gl

+0

我确实有其他空的js.coffee文件,这些文件是为我的控制器生成的,但我不使用它们,因为我写的函数需要在我的所有页面/视图之前。所以我创建了一个custom-scripts.js文件并将它们放在那里。 – melmar12

相关问题