我是 devops 的新手,無法弄清楚發生了什么。今天,我們將一個分支推向了生產,我們在其中使用新影像進行視圖。
在開發環境中一切正常,但是當它被提升到生產環境時,我們開始收到與資產管道中未找到的新影像相關的錯誤
<div class="text-center my-10">
<%= link_to t("url.static_site") do %>
<%= image_tag "logo-white-no-background" %>
<% end %>
</div>
錯誤:
The asset "logo-white-no-background" is not present in the asset pipeline.
我嘗試在bundle exec rake assets:precompile本地運行以模擬生產中發生的情況(因為我了解 /assets 下的所有內容都經過預編譯并由 Web 服務器提供服務)并且我沒有收到任何錯誤。
我在檔案中發現的唯一不同是我沒有image_tag在.
我應該嘗試在生產中強制進行預編譯以查看它是否正確加載?
我還能嘗試什么?
uj5u.com熱心網友回復:
您將需要添加擴展以使其在生產中作業!
它不應該在開發中破壞它,確保你運行rails assets:clean并rails assets:clobber清理編譯的資產,并且你有正確的檔案擴展名!
uj5u.com熱心網友回復:
該擴展程式不僅是對瀏覽器的提示,也是對某些后端服務器的提示。沒有人強迫開發者添加擴展;但是,您可以將添加擴展程式視為一種良好的編碼習慣。
例如,您的影像是 jpg,但瀏覽器將其顯示為 png。您發現影像顯示正確,可能只是因為瀏覽器正確猜測了檔案型別。在一些場景中,比如從S3下載檔案,如果沒有提供擴展名,它將作為pdf檔案提供。
順便說一句,關于您的問題,因為它沒有在生產環境中顯示影像。您可以首先通過檢查源代碼來檢查 src。如果瀏覽器無法通過該 URL 找到影像檔案,則該 URL 無效。檢查影像的 URL 后,您可以嘗試生成正確的 URL。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/375557.html
上一篇:Ransackgem找不到結果
下一篇:相關記錄的強引數不被保存操作感知
