Rails 6 带有 js-cookie 库:cookie 已设置但不持久

Rails 6 with js-cookie library: cookie is set but not persistent

我一直在尝试设置一个非常简单的 cookie,只是为了查看用户是否单击了 cookie 同意横幅。我试图在未来设置 cookie 的到期日期,这样用户就不会在每次访问时都收到此消息。它可以设置 cookie,但它只为当前会话设置它。在 IE11 中,它根本不起作用。

我的 JavaScript 是:

在custom.js中:

import Cookies from 'js.cookie';

// Hide cookie disclaimer on agreement
$('.cookies-disclaimer button').on('click', function() {
  $('.cookies-disclaimer').hide();
  Cookies.set('cookies_consent', true, { expires: 365, sameSite: 'strict' });
});

// Check if the cookie disclaimer has already been accepted
function hideAlreadyAcceptedCookieDisclaimer() {
  var consent = Cookies.get('cookies_consent');
  if (!consent) {
    $('.cookies-disclaimer').show();
  }
}
hideAlreadyAcceptedCookieDisclaimer();

在我的 application.js 中,我需要来自 node_modules 的 js 文件:

require('js-cookie/src/js.cookie')
...
require('custom')

更新:

问题似乎出在我导入文件的方式上:

  1. 我从 custom.js
  2. 中删除了 import Cookies from 'js.cookie';
  3. 在我的 application.js 中,我添加了带有 window.Cookies = require('js-cookie/src/js.cookie')
  4. 的库

感谢此 post 对我的帮助:https://discuss.rubyonrails.org/t/js-cookie/73808 and his original blogpost: https://translate.google.com/translate?hl=&sl=ru&tl=en&u=https%3A%2F%2Ftheglitchy.com%2Fn%2Fkak-ustanovit-js-cookie-na-rails-6-yarn-webpack