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')
更新:
问题似乎出在我导入文件的方式上:
- 我从 custom.js
中删除了 import Cookies from 'js.cookie';
- 在我的 application.js 中,我添加了带有
window.Cookies = require('js-cookie/src/js.cookie')
的库
感谢此 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
我一直在尝试设置一个非常简单的 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')
更新:
问题似乎出在我导入文件的方式上:
- 我从 custom.js 中删除了
- 在我的 application.js 中,我添加了带有
window.Cookies = require('js-cookie/src/js.cookie')
的库
import Cookies from 'js.cookie';
感谢此 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