При деплое не отображается виджет Сдек (работает с api yandex карт)
использую виджет Cdek 3.10. https://github.com/cdek-it/widget - инструкция по установке https://github.com/DanisKhasanov/FLX-front — ссылка на гитхаб проекта https://vite-test.flx-it.ru — тестовая ссылка на сам проект (необходимо вкл ВПН, если не загрузит)
Сразу скажу, что я еще junior разработчик, и могу не знать базовых вещей, зарее извиняюсь!
Использую React+Vite для реализации проекта. Ранее локально все отлично работало, service.php находится в корне проекта, php версии 7.4, запускал его с помощью команды php -S localhost:8000. Были проблемы с Cors добавил в service.php с 3 по 13 строчки кода.
Для виджета использовал api Yandex тестовый (который указан в инструкции по установке виджета Сдек, так как с моим созданым в Кабинете разрабочитка Яндекс не открывалась карта) — apiKey: 'f4e0***68d7' После чего решил добавить SSL -сертификат локально с помощью mkcert — тоже все работает и все хорошо, карта открывается и показывает ПВЗ
Далее был добавлен наш проект на веб-сервер. Я использовал Nginx впервые, сделал как все положено, сбилдил проект на сервере, папку dist перенес в /var/www/(вместо html). И так как файл php скорее всего тоже необходимо указать там, он тоже был туда добавлен. После чего был создан сертификат с помощью Let's Encrypt и создан тестовый домен. Вот как выглядит файл конфигурации nginx : /etc/nginx/sites-enabled/default
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/dist;
index index.html index.htm index.nginx-debian.html;
server_name vite-test.flx-it.ru;
location / {
try_files $uri $uri/ /index.html;
}
}
server {
root /var/www/dist;
index index.html index.htm index.nginx-debian.html;
server_name vite-test.flx-it.ru; # managed by Certbot
location / {
try_files $uri $uri/ /index.html;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/vite-test.flx-it.ru/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/vite-test.flx-it.ru/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = vite-test.flx-it.ru) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80 ;
listen [::]:80 ;
server_name vite-test.flx-it.ru;
return 404; # managed by Certbot
}
Сам сайт работает хорошо, запросы на бекэнд отправляются, единственное что, так это не открываются карты!
Оставил тестовый ip yandex (f4e0***68d7) и изменил расположение файла php на « https://vite-test.flx-it.ru/service.php» и в консоль выводятся ошибки : 1." GET https://vite-test.flx-it.ru/service.php?type=PVZ&is_handout=true&action=offices&page=1&size=1 404 (Not Found)" 2. An error occured while initializing Yandex Map with onComponentMount setting 3. "GET https://geocode-maps.yandex.ru/1.x/?apikey=f4e0…&format=json 403 (Forbidden)." Если коротко то — Invalid Key
Сделал собственный ключ в кабинете разрабоччика, не добавлял настройки для API-ключа и для Домена (https://vite-test.flx-it.ru/ — не добавляется, ошибка «Поле заполнено неправильно: "https://vite-test.flx-it.ru/"»
В результате чего выводятся следующие ошибки :
- GET https://vite-test.flx-it.ru/service.php?type=PVZ&is_handout=true&action=offices&page=1&size=1 404 (Not Found)
- An error occured while initializing Yandex Map with onComponentMount setting
- [CDEK] Service error Cm {message: 'Request failed with status code 404', name: 'AxiosError', code: 'ERR_BAD_REQUEST', config: {…}, request: XMLHttpRequest, …}
Использовал разные комбинации, разные ключи, изменял всячески php файл, но все безнадежно, Вы единственная помощь !)))) Прощу прощения заранее, но повторюсь, что я джун разработчик, поэтому могу не знать чего-либо)
Ответы (1 шт):
Ограничения для ключей в кабинете разработчика следует прописывать без обозначения протокола, порта и url. По одному значению в каждой строке. Эта информация прописана под самим полем для привязки доменов кабинета.
Пропишите ключу связь следующей строкой: vite-test.flx-it.ru