1

我刚刚在 Heroku 上托管的 Rails 5.1.1 应用程序出现此错误

2017-06-22T05:15:05.148829+00:00 app[web.1]: F, [2017-06-22T05:15:05.148717 #4] FATAL -- : [ef509b29-8637-41b3-8224-4423dbf2b2ed]
2017-06-22T05:15:05.148948+00:00 app[web.1]: F, [2017-06-22T05:15:05.148883 #4] FATAL -- : [ef509b29-8637-41b3-8224-4423dbf2b2ed] ActionView::Template::Error (Can't find sales.js in /app/public/packs/manifest.json. Is webpack still compiling?):
2017-06-22T05:15:05.149203+00:00 app[web.1]: F, [2017-06-22T05:15:05.149103 #4] FATAL -- : [ef509b29-8637-41b3-8224-4423dbf2b2ed]     1: %div#sale
2017-06-22T05:15:05.149206+00:00 app[web.1]: [ef509b29-8637-41b3-8224-4423dbf2b2ed]     2: = javascript_pack_tag 'sales'
2017-06-22T05:15:05.149297+00:00 app[web.1]: F, [2017-06-22T05:15:05.149231 #4] FATAL -- : [ef509b29-8637-41b3-8224-4423dbf2b2ed]
2017-06-22T05:15:05.149398+00:00 app[web.1]: F, [2017-06-22T05:15:05.149328 #4] FATAL -- : [ef509b29-8637-41b3-8224-4423dbf2b2ed] app/views/sales/new.html.haml:2:in `_app_views_sales_new_html_haml___2340659139987297731_36903000'
2017-06-22T05:15:07.004434+00:00 heroku[router]: at=info method=GET path="/favicon.ico" host=planetlauncher.herokuapp.com request_id=8bca0b65-0d4a-494f-88c7-a4b31c2ff6dc fwd="202.163.79.6" dyno=web.1 connect=1ms service=2ms status=200 bytes=143 protocol=https

只有一条路线

Rails.application.routes.draw do
  root 'sales#new'
  resources :sales
end

我的应用只有一个视图:

# sales/new.html.haml
%div#sale
= javascript_pack_tag 'sales'

app/javascript/packs/sales.jsx视图在加载时被 React 组件替换。

该应用程序在开发中完美运行,我rails assets:precompile在推送之前运行并部署到 Heroku。

编辑:这里有完整的源代码

4

1 回答 1

1

根据@gauravtiwari这个github线程:

所以要么 -/public/packs从 gitignore 中删除 [行] 或者不要在本地预编译并让 heroku 来做,即删除 public/assets 文件夹

顺便说一句,有一个问题 - webpacker:compile 取决于 assets:precompile 所以最好把它留给 Heroku,不要在本地编译资产。

因此,按照他的建议,git revert我提交了在本地预编译资产的承诺,一切都开始工作了。

你可以像我一样做,也可以跑去rm -rf /public/assets摆脱你的预编译资产。

我想您可以更进一步并添加/public/assets到您的内容.gitignore中,以确保将来不会有人意外编译资产。

我留下这个问题是因为我从一个香草 Rails 应用程序中得到了这种奇怪,因为它帮助了他们,所以其他人一定会遇到并支持我的答案;)

于 2017-06-22T20:07:39.223 回答