![](/img/trans.png)
[英]Rails : CSS/Javascript working fine locally but not on Heroku
[英]Ruby Rails - Javascript with AJAX POST working locally but not Heroku
我似乎遇到了一些有关JS和Heroku的长期问题。 尽管不完全正确-我的某些JS可以工作,但不是全部。
我在application.js
有以下内容:
//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require_tree .
function submitForm(pagenamed, starttime, endtime) {
alert("checked the button - worked");
$.ajax({
type:'POST',
url: '/pagetimes/create',
data: $.param({ pagetime: {pagename: pagenamed, start: starttime, end: endtime }}),
async:false
});
}
var d = new Date();
var starttime = d.getTime();
var pagename = document.URL
alert("load works START:" +d+ starttime + pagename);
window.onbeforeunload=function() {
var j = new Date();
var endtime = j.getTime();
alert("unload works START:" +d+ starttime +"END:"+j+ endtime +pagename );
$.ajax({
type:'POST',
url: '/pagetimes/create',
data: $.param({ pagetime: {pagename: pagename, start: starttime, end: endtime }}),
async:false
});
}
您可能会猜到,这是一个JS,它通过向create动作发送AJAX调用来捕获花费在页面上的时间并将其记录在模型下(页面时间)(所有这些都无需用户输入)。 我仍在开发中,因此我已经留下了很多警报来向我展示这些功能何时被触发。 我还可以使用一个按钮来调用该函数,该按钮可以有效地完成相同的功能(构建时如何调试AJAX调用)。 所有这些都可以在localhost(开发)中无缝运行,但是只有按钮可以在Heroku上的生产环境中使用。 甚至考虑到了这一点, onload
和onbeforeunload
操作在预期的时候都会在Heroku上触发(我得到的警报与开发中完全相同),但是数据库中什么都没有显示。 对这里出什么问题有任何想法吗?
关于预编译资产,然后推送到Heroku,或调整production.rb
或application.rb
文件中的各种选项,有很多答案,但都尝试了很多,但都无济于事。 还有一些答案报告了application.js
文件中//=...
行的顺序很重要(与引导程序有关),我也尝试过,但再次没有尝试。
它必须与我在事件函数中声明的变量或async:none
选项有关吗? 否则我就没主意了。 我正在为本地主机和heroku应用程序使用相同的浏览器。 有什么明显的我可能会丢失的东西吗? 使用Rails 3,Win7,没有花哨的宝石。
更新1:
我发现以下内容: JavaScript未在Heroku上加载,但在本地运行 ,这听起来与我的问题非常相似。 可以吗?
更新2:
我在警报中包含了pagename变量,以查看其是否正常运行。 没问题,警报中会显示正确的信息。 还可以使按钮和onbeforeunload
异步选项相同。 不是。 现在,关于这些ajax调用的所有内容都是完全相同的,但是一个有效,而另一个无效。 是什么赋予了?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.