我的第一個 Rails 應用程式遇到了 JS 問題,我懷疑這與我使用匯入映射而不是 Webpack 有關。我已經搜索并搜索過,但沒有找到任何關于此的討論。
這是一個Rails應用程式6通過刺激一些JS,我安裝加入importmap-rails,然后stimulus-rails。它在本地作業正常,但在 Heroku 上的生產中,JS 不起作用,我在瀏覽器控制臺中看到這樣的錯誤:Uncaught (in promise) Error: Unknown Content-Type "text/html; charset=utf-8" doFetch https://plainreading.herokuapp.com/assets/es-module-shims-424762490b07cc7f9a37745e8b53356bca11997a8e313f47d780e29009df7e8e.js:580
我想知道是否是因為我從我的應用程式中洗掉了 Webpack,使用How to complete remove webpack and its all its dependencies from Rails App。我洗掉了它,因為我在 Heroku 中遇到了與 Webpack 相關的構建錯誤,我的理解是,如果我使用匯入映射,則不需要 Webpack。
不久前,我在 Netlify 的靜態站點中修復了一個類似的問題,方法是將其包含在其netlify.toml配置中:
[[headers]]
for = "/*.js"
[headers.values]
Content-Type = "text/javascript; charset=utf-8"
我找不到 Heroku 的任何類似配置。然后我嘗試在應用程式中自定義回應標頭,但我找不到為我的 JS 檔案執行此操作的方法,僅適用于主 HTML 回應和公共資產。
這是 repo,以防它有幫助:https : //github.com/fpsvogel/plainreading
uj5u.com熱心網友回復:
最后,我通過執行以下操作解決了這個問題:
- 安裝 Rails 7 alpha。
- 創建一個帶有匯入映射的測驗專案:
rails _7.0.0.alpha2_ new importmap-test. (您可以使用-j設定不同的 JS 捆綁選項,例如-j esbuild,但默認為匯入映射。) - 將我的主要專案升級到 Rails 7 alpha。
- 在我的主專案中,將所有與 JS 相關的代碼與測驗專案中的相應代碼保持一致。對我來說,這意味著覆寫
app/javascript/controllers/index.js。
然后我的 JS 作業沒有錯誤。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/326044.html
標籤:javascript 红宝石轨道 英雄 网络包 http-headers
上一篇:提交檔案回滾-Heroku
