条纹自定义排版字体
Stripe custom typography font
我的网络服务器上托管了一个 cloud.typography 字体。当我尝试 link 它使用 stripe.elements()
进行条带化时,我的字体没有显示,它默认为 Helvetica。我也没有收到任何 javascript 错误。
这是我的 javascript 代码:
var elements = stripe.elements({
fonts: [
{
cssSrc: 'localhost:8080/static/fonts/######/#################.css',
},
],
});
var baseStyle = {
fontFamily: 'Gotham Narrow A, Gotham Narrow B, sans-serif',
fontSize: '16px',
lineHeight: '1.5',
fontWeight: '300',
color: '#2d3138',
'::placeholder': {
color: '#8f95a3'
}
};
var invalidStyle = {
fontFamily: 'Gotham Narrow A',
fontSize: '16px',
lineHeight: '1.5',
fontWeight: '300',
color: '#e70000'
};
var style = {
base: baseStyle,
invalid: invalidStyle
};
var styles = {style: style};
var card = elements.create('cardNumber', styles);
如果我尝试 link 使用 css link 直接排版,我会收到以下错误:
Failed to load https://cloud.typography.com/#######/#######/css/fonts.css:
Redirect from 'https://cloud.typography.com/#######/#######/css/fonts.css'
to 'https://myhostedwebsite.com/fonts/######/#################.css'
has been blocked by CORS policy: No 'Access-Control-Allow-Origin'
header is present on the requested resource. Origin 'http://localhost:8080'
is therefore not allowed access.
我也尝试过将我的字体导入为字体系列对象。
var elements = stripe.elements({
fonts: [
{
family: 'Gotham Narrow A',
src: 'url(https://myhostedwebsite.com/fonts/######/#################.eot)',
style: 'normal',
weight: '300',
},
],
});
请帮忙。
编辑
@Michael 发现他必须将 stripe.com 添加到 cloud.typography 的项目仪表板上的启用域列表中。现在条纹元素使用 cloud.typography 字体。这在 chrome 是 运行 且带有 --disable-web-security 标志时有效。但是,当使用 chrome 扩展时,这些结果不起作用。
你的错误是:
Failed to load https://cloud.typography.com/#######/#######/css/fonts.css:
Redirect from 'https://cloud.typography.com/#######/#######/css/fonts.css'
to 'https://myhostedwebsite.com/fonts/######/#################.css'
has been blocked by CORS policy: No 'Access-Control-Allow-Origin'
header is present on the requested resource. Origin 'http://localhost:8080'
is therefore not allowed access.
Chrome 不支持 CORS 请求的本地主机。
您可以使用 Allow-Control-Allow-Origin: * Chrome 扩展来解决这个问题。该扩展将为 CORS 添加必要的 HTTP Headers。
或
使用 --disable-web-security 标志开始 chrome
这里有一个示例,演示了如何从第三方页面(从您不一定控制的另一个域)加载字体。
https://jsfiddle.net/5yz4z2yn/104/
您还必须在 CSS 中导入网络字体。
@import url('https://fonts.googleapis.com/css?family=Indie+Flower');
我的网络服务器上托管了一个 cloud.typography 字体。当我尝试 link 它使用 stripe.elements()
进行条带化时,我的字体没有显示,它默认为 Helvetica。我也没有收到任何 javascript 错误。
这是我的 javascript 代码:
var elements = stripe.elements({
fonts: [
{
cssSrc: 'localhost:8080/static/fonts/######/#################.css',
},
],
});
var baseStyle = {
fontFamily: 'Gotham Narrow A, Gotham Narrow B, sans-serif',
fontSize: '16px',
lineHeight: '1.5',
fontWeight: '300',
color: '#2d3138',
'::placeholder': {
color: '#8f95a3'
}
};
var invalidStyle = {
fontFamily: 'Gotham Narrow A',
fontSize: '16px',
lineHeight: '1.5',
fontWeight: '300',
color: '#e70000'
};
var style = {
base: baseStyle,
invalid: invalidStyle
};
var styles = {style: style};
var card = elements.create('cardNumber', styles);
如果我尝试 link 使用 css link 直接排版,我会收到以下错误:
Failed to load https://cloud.typography.com/#######/#######/css/fonts.css:
Redirect from 'https://cloud.typography.com/#######/#######/css/fonts.css'
to 'https://myhostedwebsite.com/fonts/######/#################.css'
has been blocked by CORS policy: No 'Access-Control-Allow-Origin'
header is present on the requested resource. Origin 'http://localhost:8080'
is therefore not allowed access.
我也尝试过将我的字体导入为字体系列对象。
var elements = stripe.elements({
fonts: [
{
family: 'Gotham Narrow A',
src: 'url(https://myhostedwebsite.com/fonts/######/#################.eot)',
style: 'normal',
weight: '300',
},
],
});
请帮忙。
编辑
@Michael 发现他必须将 stripe.com 添加到 cloud.typography 的项目仪表板上的启用域列表中。现在条纹元素使用 cloud.typography 字体。这在 chrome 是 运行 且带有 --disable-web-security 标志时有效。但是,当使用 chrome 扩展时,这些结果不起作用。
你的错误是:
Failed to load https://cloud.typography.com/#######/#######/css/fonts.css:
Redirect from 'https://cloud.typography.com/#######/#######/css/fonts.css'
to 'https://myhostedwebsite.com/fonts/######/#################.css'
has been blocked by CORS policy: No 'Access-Control-Allow-Origin'
header is present on the requested resource. Origin 'http://localhost:8080'
is therefore not allowed access.
Chrome 不支持 CORS 请求的本地主机。
您可以使用 Allow-Control-Allow-Origin: * Chrome 扩展来解决这个问题。该扩展将为 CORS 添加必要的 HTTP Headers。
或
使用 --disable-web-security 标志开始 chrome
这里有一个示例,演示了如何从第三方页面(从您不一定控制的另一个域)加载字体。
https://jsfiddle.net/5yz4z2yn/104/
您还必须在 CSS 中导入网络字体。
@import url('https://fonts.googleapis.com/css?family=Indie+Flower');