#css #django
Вопрос:
Похоже, я не могу получить доступ к своим статическим шрифтам с помощью @font-face
свойства CSS с шрифтом, хранящимся в цифровых океанских пространствах.
Все остальные мои статические элементы работают в разделе html. Например, я могу сделать:
{% load static %}
<div class = "statusImg"><img id = '{{machine.id}}simLight' src="{% static 'images/simLight_off.png' %}"></div>
И это будет работать, как и ожидалось, принося изображение из цифрового океана.
Я не уверен, как это сделать в <style>
разделе, хотя?
Я пытался:
<style>
@font-face {
font-family: PSSroboto;
src: url("/static/fonts/roboto/Roboto-Regular.ttf")
}
</style>
и:
<style>
@font-face {
font-family: PSSroboto;
src: url({% static '/static/fonts/roboto/Roboto-Regular.ttf' %})
}
</style>
и:
<style>
@font-face {
font-family: PSSroboto;
src: "{% static '/static/fonts/roboto/Roboto-Regular.ttf' %}"
}
</style>
Я даже жестко закодировал URL-адрес и опубликовал шрифт, но это привело к нарушению политики CORS, и в целом, вероятно, в любом случае это не лучшая идея. Я надеюсь, что мне не хватает чего-то маленького?
Спасибо!
Обновление Похоже, что на самом деле это правильный синтаксис: (удаление статического префикса)
<style>
@font-face {
font-family: PSSroboto;
src: url("{% static 'fonts/roboto/Roboto-Regular.ttf' %}")
}
</style>
But the URL is formatted incorrectly. When I inspect the URL it will replace all the You can see wherever there was an amp;
it appended amp;
to it.
So it should be something like:
https://nyc3.digitaloceanspaces.com/nameofmyspace/nameofmyspace-space-static/fonts/roboto/Roboto-Regular.ttf?AWSAccessKeyId=XXXXXXXXXXXXXXamp;Signature=XXXXXXXXXXXXXXXXXX=amp;Expires=1621600823
but instead is auto generating this:
https://nyc3.digitaloceanspaces.com/nameofmyspace/nameofmyspace-space-static/fonts/roboto/Roboto-Regular.ttf?AWSAccessKeyId=XXXXXXXXXXXXXXamp;amp;Signature=XXXXXXXXXXXXXXXXXX=amp;amp;Expires=1621600823
No idea why it is doing this, but have seen this before when using javascript.
So, I tried to do a script:
let fontUrl = 'https://nyc3.digitaloceanspaces.com/nameofmyspace/nameofmyspace-space-static/fonts/roboto/Roboto-Regular.ttf';
var newStyle = document.createElement('style');
newStyle.innerHTML = `
@font-face {
font-family: "PSSroboto";
src: url(${fontUrl})
}
`;
document.head.appendChild(newStyle);
Но это не изменило шрифты…
Я в тупике