[英]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時使用。
我用了這兩個帖子:
檢查您的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資源中只聲明了bootstrap
和boostrap-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 sprockets
: bundle update sprockets
如果您已經嘗試過heroku run rake assets:precompile
並且JS仍然無法正常工作,請嘗試執行heroku restart
以在預編譯資產后heroku restart
啟動服務器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.