我正在使用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',这告诉我我的函数甚至没有运行某些原因。知道什么可能是错的吗?
答案 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,它的工作非常好。