Rails - jQuery 不能在 Heroku 的生产环境中工作
Posted
技术标签:
【中文标题】Rails - jQuery 不能在 Heroku 的生产环境中工作【英文标题】:Rails - jQuery not working in production with Heroku 【发布时间】:2015-05-15 01:20:27 【问题描述】:我正在使用 Heroku 部署一个网站,但在 jQuery 上线时真的很难启动它。在本地,一切正常。
我玩了一个游戏,但没有找到任何解决方案 - 它全部加载到资产管道中,显示为实时页面上的源(尽管没有工作),我已经尝试了所有我已经尝试过的解决方案在网上找到的。
我已经执行了rake assets:precompile
,有config.assets.compile = true
,并且认为这可能是由于 Turbolinks 的问题,安装了jquery-turbolinks
gem。
我认为每次更改都会运行此程序,但尚未影响网站的行为。这是一些代码:
宝石文件
...
gem 'bootstrap-will_paginate'
gem 'bootstrap-sass'
# Use jquery as the javascript library
gem 'jquery-rails'
gem 'jquery-ui-rails'
gem 'jquery-turbolinks'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'
...
应用程序.js
...
//= require bootstrap
//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//= require jquery-ui
//= require turbolinks
//= require_tree .
...
Application.html.erb
<head>
<link href='http://fonts.googleapis.com/css?family=Slabo+27px' rel='stylesheet' type='text/css'>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
<%= csrf_meta_tags %>
</head>
Home.js
var validBox = function(x, y)
...
);
;
var main = function()
$('.toggle').click(function()
$('.about-me').toggle();
);
//Carosel
$('.arrow-next').click(function()
...
);
$('.arrow-prev').click(function()
...
);
//Comments
$('.btn').click(function()
...
);
$('.status-box').keyup(validBox('.status-box', '.name-box'));
$('.name-box').keyup(validBox('.name-box', '.status-box'));
$('.btn').addClass('disabled');
$(document).ready(main);
$(document).ready(main);
行可能有问题吗?我有一种感觉,我在某处读过 jQuery 并不总是响应,因为使用 Turbolinks 时页面没有从头开始加载/“准备好”,尽管认为添加相关的 Gem 可以解决这个问题。我也尝试过$(document).on('ready', 'page:change')(main);
在其他点运行该功能,但无济于事。
另外,我似乎记得有一些命令行功能可以更好地确保资产在活动时运行,但找不到任何相关内容。
任何帮助都将不胜感激,因为我对此感到困惑。我对此很陌生,所以如果其中有任何明显的业余错误,我深表歉意(尽管这可能意味着一个简单的解决方案!)。
在此先感谢史蒂夫。
【问题讨论】:
【参考方案1】:就我而言,我在这里找到了答案:
Bootstrap won't detect jQuery 1.11.0 - Uncaught Error: Bootstrap's JavaScript requires jQuery
Java 控制台抛出了上面提到的错误,在上帝知道有多少狩猎之后,只需更改 js 文件的加载顺序就可以了。
Bootstrap 在 jQuery之后,一切正常!!
//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require turbolinks
//= require_tree .
【讨论】:
以上是关于Rails - jQuery 不能在 Heroku 的生产环境中工作的主要内容,如果未能解决你的问题,请参考以下文章
将 Rails 应用程序部署到 Heroku 后,不显示 JQuery 函数中的图像
Heroku中的rails api instagram jquery env