我目前正在创建一个电子应用程序,我想在其中使用React传单的Map功能。这需要使用外部网址的抛出CSP错误,当我试图使用他们。
我在leaftlet中使用的代码如下所示:
<MapContainer id="MapViewElement" center={[51.505, -0.09]} zoom={13}>
<TileLayer
attribution='© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
url="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"
/>
<Marker position={[51.505, -0.09]}>
<Popup>
A pretty CSS3 popup. <br /> Easily customizable.
</Popup>
</Marker>
</MapContainer>
并且在index.js
中i具有 meta标签:
<meta
charset="UTF-8"
http-equiv="Content-Security-Policy"
content="default-src *;
img-src https://*.tile.openstreetmap.org/*.png data: https://*.tile.openstreetmap.org/*.png ; script-src 'self' 'unsafe-inline' 'unsafe-eval' *;
style-src * 'unsafe-inline' *; child-src *"
/>
然后运行它会引发一些问题,主要是
拒绝加载图像“https://c.tile.openstreetmap.org/13/4094/2724.png”,因为它违反了以下内容安全策略指令:“default-src 'self' 'unsafe-inline'数据:“。请注意,未显式设置”img-src“,因此”default-src“用作回退。
如果有什么我是从我的代码丢失请让我知道,我已经有一段时间的麻烦了。谢谢你的任何帮助!
1条答案
按热度按时间ruarlubt1#
我已经找到了我的问题的答案!
事实证明,在Electron中设置了一个默认CSP,这似乎会干扰在
index.html
meta标记中设置它。要解决此问题,请改为在
package.json
中转到plugins
部分并添加一个devContentSecurityPolicy
字段,CSP将输入到该字段中,如下所示:"devContentSecurityPolicy: default-src 'self' https://xxxx 'unsafe-inline' etc.
为了让react传单的MapContainer为我工作,我使用了:
我希望这能帮助其他人,如果他们偶然发现这个问题!