我将 Heroku 上的应用程序从带有 Webpacker 的 Rails 6 更新到带有 esbuild 的 Rails 7。
\n我在生产中收到的错误如下:
\nThe asset "application.js" is not present in the asset pipeline\nRun Code Online (Sandbox Code Playgroud)\n我进入 Heroku 服务器,看到 application.js 文件位于app/assets/builds内,在我的 manifest.js 中,它的设置如下:
\n//= link_tree ../images\n//= link_tree ../builds\nRun Code Online (Sandbox Code Playgroud)\n但是当我检查public/assets/ * 文件夹时,除了 application.js 和一个 css 文件之外,所有文件都在那里。
\n根据 Heroku 在其网站上的推荐,我还在本地尝试了以下代码:
\nRAILS_ENV=production bundle exec rake assets:precompile\nRun Code Online (Sandbox Code Playgroud)\n这会将包括 application.js 在内的所有文件编译到public/assets/ * 中,并在本地正常工作。在 Heroku 生产中,即使我尝试手动编译,application.js 也不会复制到public/assets/ *
\n我的 esbuild 脚本如下并且工作没有问题:
\n"build": …Run Code Online (Sandbox Code Playgroud)