【发布时间】:2021-02-01 07:39:08
【问题描述】:
我正在使用 ruby 2.7.1 和 rails 6.0.3.4 并在尝试调用 csrf_meta_tags 或 form_for 时遇到以下错误
2021-02-01T07:25:10.058892+00:00 app[web.1]: [9c50e00c-9868-45dc-89d8-1ec8f42d56ab] ActionView::Template::Error (invalid base64):
2021-02-01T07:25:10.058893+00:00 app[web.1]: [9c50e00c-9868-45dc-89d8-1ec8f42d56ab] 1: <h2>Log in</h2>
2021-02-01T07:25:10.058894+00:00 app[web.1]: [9c50e00c-9868-45dc-89d8-1ec8f42d56ab] 2:
2021-02-01T07:25:10.058895+00:00 app[web.1]: [9c50e00c-9868-45dc-89d8-1ec8f42d56ab] 3: <%= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %>
2021-02-01T07:25:10.058895+00:00 app[web.1]: [9c50e00c-9868-45dc-89d8-1ec8f42d56ab] 4: <div class="field">
2021-02-01T07:25:10.058896+00:00 app[web.1]: [9c50e00c-9868-45dc-89d8-1ec8f42d56ab] 5: <%= f.label :email %><br />
2021-02-01T07:25:10.058898+00:00 app[web.1]: [9c50e00c-9868-45dc-89d8-1ec8f42d56ab] 6: <%= f.email_field :email, autofocus: true, autocomplete: "email" %>
2021-02-01T07:25:10.058899+00:00 app[web.1]: [9c50e00c-9868-45dc-89d8-1ec8f42d56ab]
2021-02-01T07:25:10.058899+00:00 app[web.1]: [9c50e00c-9868-45dc-89d8-1ec8f42d56ab] app/views/devise/sessions/new.html.erb:3
我只有在部署到 Heroku 时才会在生产环境中出现此错误。在开发中,真实性令牌生成时没有错误,但由于某种原因在 Heroku 上产生了上述错误。知道这里会发生什么吗?
我已尝试缩小导致问题的行的范围,并且我得到了 form_authenticity_token 和 masked_authenticity_token 但到目前为止我无法追踪哪些行是问题所在。
其他一些可能相关的版本:
Gemfile.lock
------------
webpacker (4.3.0)
yarn.lock
---------
@rails/webpacker@4.3.0
我试过简单地省略csrf_meta_tags,但我仍然在表单上遇到错误,如上所示。我找不到其他有相同问题的参考资料,因此非常感谢您的帮助。
【问题讨论】:
-
ruby 2.6.5 rails 6.0.3 在生产中遇到同样的错误(不是 heroku)。格林威治标准时间 7:00 左右开始。
-
你的 'webpacker' 版本是什么?
-
@MichałCzapko 我更新了描述。根据 Gemfile.lock 和 yarn.lock 文件,开发和生产似乎都在使用 webpacker 4.3.0。
-
我不使用 webpacker。
-
我遇到了类似的问题,当我重新部署没有 CSRF 标记的应用程序并再次使用之前不起作用的相同代码时,它会自动修复。