Недавно я попытался развернуть приложение SailsJS в среде AWS, и поэтому я настроил соответствующие промежуточные и промежуточные файлы.
Одна постоянная проблема, с которой я столкнулся, была при запуске приложения с:
sails lift --staging
Я заметил, что либо получал повторяющиеся перенаправления, либо он вообще не был доступен.
После некоторого дальнейшего поиска я наткнулся на этот код, расположенный в файле api/hooks/custom/index.js
:
// Next, if we're running in our actual "production" or "staging" Sails
// environment, check if this is a GET request via some other subdomain,
// for example something like `webhooks.` or `click.`. If so, we'll
// automatically go ahead and redirect to the corresponding path under
// our base URL, which is environment-specific.
// > Note that we DO NOT redirect virtual socket requests and we DO NOT
// > redirect non-GET requests (because it can confuse some 3rd party
// > platforms that send webhook requests.)
var configuredBaseSubdomain;
try {
configuredBaseSubdomain = url.parse(sails.config.custom.baseUrl).host.match(/^([^\.]+)\./)[1];
} catch (unusedErr) { /*…*/}
if ((sails.config.environment === 'staging' || sails.config.environment === 'production') && !req.isSocket && req.method === 'GET' && req.subdomains[0] !== configuredBaseSubdomain) {
sails.log.info('Redirecting GET request from `'+req.subdomains[0]+'.` subdomain...');
return res.redirect(sails.config.custom.baseUrl+req.url);
}//•
Я пытался расспросить о каналах IRC и ссылках Gitter.im, но мои запросы «затерялись в шуме», так что я решил просто спросить здесь и оставить дляобсуждение.Нет ли лучшего способа справиться с этим?
Развертывание в среде AWS с URL-адресом http://ec2 -xxx-xxx-xxx-xxx.locale-x.compute.amazonaws.com или просто доступ по IP-адресу оба перехватываются используемым регулярным выражением:
/^([^\.]+)\./
Что делает развертывание довольно трудным, если приложение не находится в корневом маршруте (ха-ха) сайта.Разве нет другого способа справиться с этим?
На данный момент я должен был закомментировать это только для того, чтобы мое подготовленное приложение можно было использовать / тестировать.Я также понимаю, что это могло быть выполнено с помощью параметра, переданного при первоначальном создании моего проекта с помощью проекта sails-generate , но я еще не отследил его