[SOLVED] CORS или Access-Control-Allow-Origin
[SOLVED] CORS или Access-Control-Allow-Origin
Не получается пускать шрифты через CDN, куда уже только не писал Access-Control-Allow-Origin *
Пользуюсь инструкцией: http://docs.skyparkcdn.ru/knowledge_base/item/43253
пишу в файл:
/etc/nginx/conf.d/185.5.251.***.conf
в .htaccess в корне сайта тоже писал, не работает
Debian 7, чистая установка VestaCP, что я делаю не так?
Пользуюсь инструкцией: http://docs.skyparkcdn.ru/knowledge_base/item/43253
пишу в файл:
/etc/nginx/conf.d/185.5.251.***.conf
в .htaccess в корне сайта тоже писал, не работает
Debian 7, чистая установка VestaCP, что я делаю не так?
Last edited by sonyblack on Thu Jul 23, 2015 3:39 pm, edited 2 times in total.
Re: CORS или Access-Control-Allow-Origin или загрузка шрифто
Подключается команда знатоков-телепатов! :)что я делаю не так?
Давайте по порядку из статьи:
Конфигурация Apache
* Добавьте в файл .htaccess -- это в папку с вашим сайтом
Конфигурация Nginx
* Добавьте в секцию server файл nginx.conf:
/home/user/conf/web/nginx.conf
.htaccess or Apache/Nginx config
ну здесь на выбор или htaccess или nginx.conf
А теперь проверка:
<code>$ curl -I https://</code>/cdn.example.ru<code>/media/fonts/somefont.ttf
Re: CORS или Access-Control-Allow-Origin или шрифты и CDN
Я добавляю в .htaccess, ничего не происходит
В nginx.conf нельзя создать секцию server, при перезагрузке Nginx ругается, поэтому добавляю в конфиг ip
Чищу кэш cdn
Ответ всегда такой
curl -I http://cdn.***.**/template/css/fontawesome/fonts/fontawesome-webfont.ttf
HTTP/1.1 200 OK
Server: nginx
Date: Thu, 23 Jul 2015 13:26:38 GMT
Content-Type: font/ttf
Content-Length: 122092
Connection: keep-alive
Last-Modified: Sat, 02 May 2015 06:41:37 GMT
Expires: Thu, 31 Dec 2037 23:55:55 GMT
Cache-Control: max-age=315360000
X-Age: 3
X-Cache: HIT
X-Storage: 93.171.206.215:8001
Accept-Ranges: bytes
X-Edge-IP: 93.171.206.215
X-Edge-Location: Yekaterinburg, RU
В nginx.conf нельзя создать секцию server, при перезагрузке Nginx ругается, поэтому добавляю в конфиг ip
Чищу кэш cdn
Ответ всегда такой
curl -I http://cdn.***.**/template/css/fontawesome/fonts/fontawesome-webfont.ttf
HTTP/1.1 200 OK
Server: nginx
Date: Thu, 23 Jul 2015 13:26:38 GMT
Content-Type: font/ttf
Content-Length: 122092
Connection: keep-alive
Last-Modified: Sat, 02 May 2015 06:41:37 GMT
Expires: Thu, 31 Dec 2037 23:55:55 GMT
Cache-Control: max-age=315360000
X-Age: 3
X-Cache: HIT
X-Storage: 93.171.206.215:8001
Accept-Ranges: bytes
X-Edge-IP: 93.171.206.215
X-Edge-Location: Yekaterinburg, RU
Re: CORS или Access-Control-Allow-Origin или шрифты и CDN
Посути вопрос в том, куда бы вписать «Access-Control-Allow-Origin *»
Чтоб давало фаерфоксам и хромам брать шрифты с других доменов.
даже при вставки в php не работает, где-то в настройках зарубается если я правильно понимаю
Чтоб давало фаерфоксам и хромам брать шрифты с других доменов.
даже при вставки в php не работает, где-то в настройках зарубается если я правильно понимаю
Re: CORS или Access-Control-Allow-Origin или шрифты и CDN
Ого, давайте вместо прочитаем:sonyblack wrote: В nginx.conf нельзя создать секцию server, при перезагрузке Nginx ругается, поэтому добавляю в конфиг ip
Добавьте в секцию server файл nginx.conf:
Code: Select all
location ~ \.(ttf|ttc|otf|eot|woff|woff2|font.css|css|js)$ {
add_header Access-Control-Allow-Origin "*";
}
user - ваш пользователь
Re: CORS или Access-Control-Allow-Origin или шрифты и CDN
Изначально - в apache2sonyblack wrote:Посути вопрос в том, куда бы вписать «Access-Control-Allow-Origin *»
Чтоб давало фаерфоксам и хромам брать шрифты с других доменов. даже при вставки в php не работает, где-то в настройках зарубается если я правильно понимаю
но из-за связки nginx+apache2 - не только в него, о чем довольно подробно в статье.
Re: CORS или Access-Control-Allow-Origin или шрифты и CDN
Все записи продублировал в apache2.conf и в nginx.conf в папке пользователя, очистил кэш в cdn, перезагрузил сервер, ответ все такой же
Re: CORS или Access-Control-Allow-Origin или шрифты и CDN
Вообщем я победил эту штуку, надо добавить это:
location ~ \.(ttf|ttc|otf|eot|woff|woff2|font.css|css|js)$ {
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '*';
#
# Om nom nom cookies
#
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
#
# Custom headers and headers various browsers *should* be OK with but aren't
#
add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
#
# Tell client that this pre-flight info is valid for 20 days
#
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain charset=UTF-8';
add_header 'Content-Length' 0;
return 204;
}
if ($request_method = 'POST') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
}
if ($request_method = 'GET') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
}
}
Источник: http://enable-cors.org/server_nginx.html
location ~ \.(ttf|ttc|otf|eot|woff|woff2|font.css|css|js)$ {
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '*';
#
# Om nom nom cookies
#
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
#
# Custom headers and headers various browsers *should* be OK with but aren't
#
add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
#
# Tell client that this pre-flight info is valid for 20 days
#
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain charset=UTF-8';
add_header 'Content-Length' 0;
return 204;
}
if ($request_method = 'POST') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
}
if ($request_method = 'GET') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
}
}
Источник: http://enable-cors.org/server_nginx.html
Re: [SOLVED] CORS или Access-Control-Allow-Origin
Ого, некислая такая инструкция.
Однако если вы посмотрите, что общий случай был и в первой статье.
Имею в виду:
Однако если вы посмотрите, что общий случай был и в первой статье.
Имею в виду:
Code: Select all
location ~ \.(ttf|ttc|otf|eot|woff|woff2|font.css|css|js)$ {
add_header Access-Control-Allow-Origin "*";