Я знаю, что это немного противоречит тому, что браузеру придется загружать шрифт для его рендеринга, но мне было интересно, есть ли способ разместить его там, где его нельзя напрямую загрузить (или кэшировать на компьютер пользователя дляэто важно).
Решением, которое я придумал, было создание PHP-скрипта, который хэширует текущее время с точностью до секунды (добавляя соль).Если конкретная переменная в запросе GET соответствует этому хешу, она отправит заголовок для MIME-типа шрифта, а затем выведет содержимое файла шрифта.
Затем я воссоздаю хеш в таблице стилей и конкатенируюСтроки, где это будет действительный запрос к сценарию PHP.
Это основная идея.У меня было это работает.Но в этом было два недостатка:
- Если браузер запрашивает шрифт в другую секунду, PHP-скрипт не сможет соответствовать хеш-значениям, поэтому ничего не будет выводиться, поэтому шрифт будетрезервный шрифт (или шрифт по умолчанию, если он не был предоставлен)
- Если бы кто-то был достаточно быстр, он / она мог бы загрузить шрифт напрямую, если бы он / она запросил его в ту же секунду (при условии, что это, вероятно, придетсябыть сценарием, который сделал бы это.
Также браузер кэширует шрифт где угодно (не то, чтобы кэширование помогло, так как хеш в URI практически всегда был бы другим).
РЕДАКТИРОВАТЬ: Есть ли $_SERVER
переменные, которые я мог бы использовать?