簡體   English   中英

找不到Rails / Heroku的預編譯資產

[英]Rails/Heroku precompiled assets not being found

我對Rails和Heroku還是很陌生,並且正在嘗試部署一個使用jQuery UI庫的應用程序。 我的app/assets文件夾中有jQuery UI Javascript和CSS文件,並且已將其設置為預編譯資產(必須這樣做才能使我的應用程序真正在Heroku上運行)。 但是,當我加載頁面時,找不到jQuery UI文件(jQuery UI無法正常工作)。 根據我的收集,它將文件重命名為<filename>-<md5 hash>.js/css 如何使其引用正確的文件?

app/views/layouts/application.html.erb

  <%= stylesheet_link_tag    "application" %>
  <%= javascript_include_tag "application" %>
  <%= javascript_include_tag "http://code.jquery.com/jquery-1.7.1.min.js" %>
  <%= javascript_include_tag "jquery-ui-1.8.16.custom.min" %>
  <%= stylesheet_link_tag "jquery-ui-1.8.16.custom" %>
  <%= stylesheet_link_tag "http://fonts.googleapis.com/css?family=Open+Sans:300italic,400,300" %>
  <%= csrf_meta_tags %>

實際上,我建議刪除預編譯資產功能,並允許Heroku為您完成此操作。 我最初像您一樣開始,但是很快發現這是一種更好的方法,並受到Heroku支持的建議,以便在段編譯期間進行資產編譯。

請確保您使用的是Cedar堆棧,而不是Bamboo, 請查看此內容 ,然后按照以下步驟進行故障排除: 在此處輸入圖片說明

旁注特別重要:“如果在您的應用程序中檢測到public/assets/manifest.yml ,Heroku將假定您自己在進行資產編譯,而不會嘗試編譯資產。”

確保刪除預編譯已創建的public / assets / *文件夾下的所有內容,包括manifest.yml文件。

否則,應自動包括app/assets/javascripts所有JavaScript文件,並且您應該能夠在以開發模式檢查時看到它(默認情況下,在heroku的生產模式下,它們將全部縮小為一個application.js文件) ,但如果它們以開發人員模式顯示,則您應該是金牌)。

如果您使用默認的Bamboo堆棧,則需要通過rake assets:precompile自己並將結果提交到public / assets中並將其推送到Heroku。 否則,使用Cedar堆棧可能是一個更簡單的選擇。

如此處所述( https://devcenter.heroku.com/articles/ruby-support#static-assets ),您應該將'rails_serve_static_assets'gem添加到您的Gemfile中,此問題將得到解決。

暫無
暫無

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

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