![](/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.