在 Shopify liquid 中使用 @font-face 时出现字体文件 404
Font file 404 when using @font-face in Shopify liquid
我浏览了在这里和 Shopify 论坛上可以找到的所有帖子,并尝试了一些不同的方法,但遗憾的是未能解决我的问题。我正在使用 Shopify 主题编辑器应用程序和 Sublime 文本在 Shopify 开发商店上进行开发。
在我的 Shopify 主题中,我在 styles.css.liquid 文件中使用 @font-face 来加载自定义字体:
@font-face {
font-family: 'gotham-book';
src: url(' {{ 'gotham-book-webfont.eot' | asset_url }} ');
src: url(' {{ 'gotham-book-webfont.eot?#iefix' | asset_url }} ') format('embedded-opentype'),
url(' {{ 'gotham-book-webfont.woff2' | asset_url }} ') format('woff2'),
url(' {{ 'gotham-book-webfont.woff' | asset_url }} ') format('woff'),
url(' {{ 'gotham-book-webfont.ttf' | asset_url }} ') format('truetype'),
url(' {{ 'gotham-book-webfont.svg#gothambook' | asset_url }} ') format('svg');
font-weight: normal;
font-style: normal;
}
我在主题的 'assets' 文件夹中有所有列出的字体文件,文件名和扩展名都是正确的。
我正在使用 font-family 在需要的地方加载字体,仍在 styles.css.liquid,例如:
.some-element {
font-family: 'gotham-book', Helvetica, Arial, sans-serif;
}
问题是当我加载页面时,没有加载字体。当我在 Chrome 开发工具中检查页面时,它告诉我正在查找但未找到字体文件,例如:
GET http://cdn.shopify.com/s/files/1/0924/9286/t/3/assets/gotham-book-webfont.ttf?13846384044068149085 404 (Not Found)
字体文件在本地页面上加载正常,据我所知,我的 asset_url 标签格式正确,字体文件在它们应该在的位置,所以生成的文件路径应该是正确的,但似乎不是。如果有人能够对此有所了解,我将永远感激不已!干杯!
经过 2 天的折腾,最终解决这个问题的是更改字体的文件名并删除其中的所有连字符。所以 @font-face css 从这个改变:
@font-face {
font-family: 'gotham-book';
src: url(' {{ 'gotham-book-webfont.eot' | asset_url }} ');
src: url(' {{ 'gotham-book-webfont.eot?#iefix' | asset_url }} ') format('embedded-opentype'),
url(' {{ 'gotham-book-webfont.woff2' | asset_url }} ') format('woff2'),
url(' {{ 'gotham-book-webfont.woff' | asset_url }} ') format('woff'),
url(' {{ 'gotham-book-webfont.ttf' | asset_url }} ') format('truetype'),
url(' {{ 'gotham-book-webfont.svg#gothambook' | asset_url }} ') format('svg');
font-weight: normal;
font-style: normal;
}
为此:
@font-face {
font-family: 'gothambook';
src: url(' {{ 'gothambook.eot' | asset_url }} ');
src: url(' {{ 'gothambook.eot?#iefix' | asset_url }} ') format('embedded-opentype'),
url(' {{ 'gothambook.woff2' | asset_url }} ') format('woff2'),
url(' {{ 'gothambook.woff' | asset_url }} ') format('woff'),
url(' {{ 'gothambook.ttf' | asset_url }} ') format('truetype'),
url(' {{ 'gothambook.svg#gothambook' | asset_url }} ') format('svg');
font-weight: normal;
font-style: normal;
}
对字体文件和 Shopify 主题资产文件夹中的 styles.scss.liquid 文件进行这些更改后,字体开始加载并按预期显示。
我不记得在 Shopify 文档中的任何地方读过任何关于资产文件命名约定的内容,所以希望这可以在将来节省一些时间!
我浏览了在这里和 Shopify 论坛上可以找到的所有帖子,并尝试了一些不同的方法,但遗憾的是未能解决我的问题。我正在使用 Shopify 主题编辑器应用程序和 Sublime 文本在 Shopify 开发商店上进行开发。
在我的 Shopify 主题中,我在 styles.css.liquid 文件中使用 @font-face 来加载自定义字体:
@font-face {
font-family: 'gotham-book';
src: url(' {{ 'gotham-book-webfont.eot' | asset_url }} ');
src: url(' {{ 'gotham-book-webfont.eot?#iefix' | asset_url }} ') format('embedded-opentype'),
url(' {{ 'gotham-book-webfont.woff2' | asset_url }} ') format('woff2'),
url(' {{ 'gotham-book-webfont.woff' | asset_url }} ') format('woff'),
url(' {{ 'gotham-book-webfont.ttf' | asset_url }} ') format('truetype'),
url(' {{ 'gotham-book-webfont.svg#gothambook' | asset_url }} ') format('svg');
font-weight: normal;
font-style: normal;
}
我在主题的 'assets' 文件夹中有所有列出的字体文件,文件名和扩展名都是正确的。
我正在使用 font-family 在需要的地方加载字体,仍在 styles.css.liquid,例如:
.some-element {
font-family: 'gotham-book', Helvetica, Arial, sans-serif;
}
问题是当我加载页面时,没有加载字体。当我在 Chrome 开发工具中检查页面时,它告诉我正在查找但未找到字体文件,例如:
GET http://cdn.shopify.com/s/files/1/0924/9286/t/3/assets/gotham-book-webfont.ttf?13846384044068149085 404 (Not Found)
字体文件在本地页面上加载正常,据我所知,我的 asset_url 标签格式正确,字体文件在它们应该在的位置,所以生成的文件路径应该是正确的,但似乎不是。如果有人能够对此有所了解,我将永远感激不已!干杯!
经过 2 天的折腾,最终解决这个问题的是更改字体的文件名并删除其中的所有连字符。所以 @font-face css 从这个改变:
@font-face {
font-family: 'gotham-book';
src: url(' {{ 'gotham-book-webfont.eot' | asset_url }} ');
src: url(' {{ 'gotham-book-webfont.eot?#iefix' | asset_url }} ') format('embedded-opentype'),
url(' {{ 'gotham-book-webfont.woff2' | asset_url }} ') format('woff2'),
url(' {{ 'gotham-book-webfont.woff' | asset_url }} ') format('woff'),
url(' {{ 'gotham-book-webfont.ttf' | asset_url }} ') format('truetype'),
url(' {{ 'gotham-book-webfont.svg#gothambook' | asset_url }} ') format('svg');
font-weight: normal;
font-style: normal;
}
为此:
@font-face {
font-family: 'gothambook';
src: url(' {{ 'gothambook.eot' | asset_url }} ');
src: url(' {{ 'gothambook.eot?#iefix' | asset_url }} ') format('embedded-opentype'),
url(' {{ 'gothambook.woff2' | asset_url }} ') format('woff2'),
url(' {{ 'gothambook.woff' | asset_url }} ') format('woff'),
url(' {{ 'gothambook.ttf' | asset_url }} ') format('truetype'),
url(' {{ 'gothambook.svg#gothambook' | asset_url }} ') format('svg');
font-weight: normal;
font-style: normal;
}
对字体文件和 Shopify 主题资产文件夹中的 styles.scss.liquid 文件进行这些更改后,字体开始加载并按预期显示。
我不记得在 Shopify 文档中的任何地方读过任何关于资产文件命名约定的内容,所以希望这可以在将来节省一些时间!