簡體   English   中英

Javascript功能可以在localhost上運行,但在部署到Heroku時則不行

[英]Javascript features work on localhost but not when deployed to Heroku

我注意到,當我部署到Heroku時,javascript功能不起作用(例如Bootstrap Popover,Buttons等)。 我正在使用rails 3.2.2,ruby 1.9.3。 這些功能適用於localhost。 部署到Heroku時似乎沒有顯示錯誤(這些功能根本沒有顯示)。

有任何想法嗎? 謝謝!

手動預編譯為我工作。

bundle exec rake assets:precompile在你推送到heroku之前bundle exec rake assets:precompile

我有完全相同的問題(我對Rails很新)。 我最終通過重新排列application.js中的文件順序解決了這個問題:

//= require jquery
//= require jquery_ujs
//= require twitter/bootstrap

為了使javascripts在開發中工作,需要在“require twitter / bootstrap”之后使用“require jquery”。 在制作中,jquery需要先行。 不知道是什么導致了這一點,但它現在可以在部署到Heroku時使用。

我用了這兩個帖子:

javascript - 未編譯用於生產的Twitter引導程序jquery插件

twitter bootstrap下降突然無法正常工作

檢查您的production.rb文件。 我相信這條線必須是:

config.assets.compile = true

我相信這默認設置為false。

記住你通常在localhost上做的所有事情,你必須使用heroku。 確保heroku run rake assets:precompile

我也有類似的問題,但問題也發生在localhost上。

你可能正在使用rails-bootstrap gem。 它安裝了一個文件bootstrap.coffee.js這個文件是罪魁禍首。 它有.popover使用和相關的插件不包括在內。 我評論說,因為我還沒有使用它,但你應該考慮包括用於bootstrap的popover插件。

檢查我的應用程序的縮小的js,並在文件中彈出兩次。

確保在javascript資源中只聲明了bootstrapboostrap-sprockets中的一個

來自文檔:

bootstrap-sprockets和bootstrap不應該都包含在application.js中。

bootstrap-sprockets提供單獨的Bootstrap Javascript文件(例如alert.js或dropdown.js),而bootstrap提供包含所有Bootstrap Javascripts的連接文件。

確保只有一個bootstrap和bootstrap鏈輪

Refs: bootstrap-sass github問題這里

更新鏈接器對我bundle update sprocketsbundle update sprockets

如果您已經嘗試過heroku run rake assets:precompile並且JS仍然無法正常工作,請嘗試執行heroku restart以在預編譯資產后heroku restart啟動服務器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM