我已经测试了已实现的cookie中心,react-ga,gatsbu插件gdpr cookie。 配置它们时没有什么特别的事情,甚至在devtools中都看不到任何cookie。 有没有人想出如何为Gatsby实现cookie并让用户选择他要使用的cookie? 我是否需要在头部内放一个特殊的脚本标签,还是应该用gatsby.config替换它?
亲切的问候,乔纳森
不幸的是,P.S没有要显示的脚本..
答案 0 :(得分:1)
许多插件只能在“生产”模式下使用,例如那些google分析型插件。每次程序运行时,Gatsby都会为您自动设置的NODE_ENV
变量来启用插件。将gatsby build
的{{1}}设置为“开发”,将禁用某些插件。
当您NODE_ENV
和gatsby build
时,此环境变量被设置为gatsby serve
,因此启用了插件。
关于Cookie同意:
您可以使用诸如react-cookie-consent之类的项目:
production
答案 1 :(得分:0)
谢谢EliteRaceElephant!我们得到了它的工作。 但是现在我们偶然发现了一个新的障碍。 当我尝试执行Cookies.remove('_ gid')等时,cookie被删除,但在更改页面时再次出现。我们的代码看起来像这样的ATM:
import CookieConsent, { Cookies } from "react-cookie-consent";
const App = props => {
return (
<div>
<Global.MainContainer>
<Global.flexContainer>
<Header />
<div className="contentWrapper">{props.children}</div>
<CookieConsent
enableDeclineButton
location="bottom"
buttonText="Sure man!!"
cookieName="myAwesomeCookieName2"
style={{ background: "#2B373B" }}
buttonStyle={{ color: "#4e503b", fontSize: "13px" }}
onDecline={() => { Cookies.remove('_ga')
Cookies.remove('_gat')
Cookies.remove('_gid')}}
setDeclineCookie={false}
>
This website uses cookies to enhance the user experience.{" "}
<span style={{ fontSize: "10px" }}>
This bit of text is smaller :O
</span>
</CookieConsent>
</Global.flexContainer>
<Footer />
</Global.MainContainer>
</div>
)
}
export default App
我们要保存用户输入的状态,以便cookie不会重新出现