【问题标题】:JS, JQuery not working with herokuJS,JQuery 不能与 heroku 一起使用
【发布时间】:2018-01-23 18:20:33
【问题描述】:

我是网络开发的新手。正如标题所述,我在 Heroku 中的 JS 一直存在问题。我在 rails 5.1 上使用 ruby​​,当我将项目推送到 Heroku master 时,一切正常,但 JavaScript 除外。在过去的两天里,我一直在谷歌上搜索这个。我尝试组织 //= 要求 etcetc,尝试修改我的代码,尝试将 config.assets.compile = false 更改为 true,并在 StackOverflow 中尝试了 4 到 5 个不同的结果,例如(Javascript features work on localhost but not when deployed to Heroku)。真的不知道我还能做什么。 这是我的 application.js

//= require jquery
//= require rails-ujs
//= require turbolinks
//= require jquery.easing
//= require bootstrap-sprockets
//= require creative
//= require_tree .

$(document).on('turbolinks:load', function() {
// Offset for Main Navigation
$('#mainNav').affix({
    offset: {
    top: 50
}
});

$("#button-transform").click(function() {
  $('.transform').toggleClass('transform-active');
});

window.setTimeout(function() {
$("#flash").fadeTo(2500, 0).slideUp(1750, function() 
{
    $(this).remove();
});
}, 3000);

});

如果您需要更多信息,请告诉我。

谢谢

【问题讨论】:

  • 到目前为止,我已经尝试了@Chris 告诉我的 $(document).ready(function() {});。同样的问题。适用于本地主机服务器,但不适用于 Heroku。尝试重新排列 //= 再次需要,结果相同。尝试将所有 JS 放在单独的文件和应用程序中,但它不起作用。在谷歌上来回走动,没有结果。我还按照 GitHub 中的指南进行了 turbolink,还没有。现在越来越沮丧。任何其他建议。谢谢。

标签: javascript jquery ruby-on-rails ruby heroku


【解决方案1】:

我知道这篇文章发布已经有一段时间了,但对我来说解决方法很简单。

而不是使用它来导入 jquery:

<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js' type='text/javascript'></script>`

您需要这样做:

<script src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js' type='text/javascript'></script>`

这是因为 Heroku 需要安全连接,即 https 而不是 http。 p>

【讨论】:

    【解决方案2】:

    我设法解决了我的问题。最终,经过几个小时的研究,我放弃了这个问题,开始做一些 CSS 样式。当我尝试将新的 CSS 推送到 Heroku 时,我遇到了同样的问题。没有在 Heroku 中显示更新的 CSS。再次,做了一些研究,发现了这一点;

    bundle exec rake assets:precompile
    

    起初,它对我不起作用。据说我需要安装 yarnpkg,我已经安装了。所以,做了更多的研究,最后注意到我无法执行 bundle exec rake assets:precompile 因为我在分支存储库而不是主存储库中。对主人进行了结帐,再次运行命令,检查了 CSS 并且它正在工作。以及 JQuery。 回答我的问题,

    bundle exec rake assets:precompile
    

    是帮助我的命令。

    步骤是

    bundle exec rake assets:precompile
    git add --all
    git commit -m "some message"
    git push heroku master
    

    【讨论】:

    • 有史以来最好的答案!我花了 2 天时间试图修复它
    【解决方案3】:

    jQuery Turbolinks 不支持通过$(document).on('ready', function) 绑定的就绪事件。请改用$(document).ready(function)$(function)

    不会起作用:

    $(document).on('ready', function () { /* ... */ });
    

    这两个保证工作:

    $(document).ready(function () { /* ... */ });
    $(function () { /* ... */ });
    

    【讨论】:

    • 您好,感谢您的回复。我是 JS 新手。当你说 $(document).on('ready', function () { /* ... */ });你指的是 $(document).on('turbolinks:load', function() {}?
    猜你喜欢
    • 2016-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-04
    • 2021-05-09
    • 2020-01-28
    • 2016-03-23
    相关资源
    最近更新 更多