Как протестировать субдомены на машине разработки? abc.localhost

Вместо использования встроенных обработчиков атрибутов (которые сложны в управлении и обычно считаются довольно плохой практикой), вместо этого присоедините обработчик, используя Javascipt, внутри onload:

window.onload = function() {
  const test = document.querySelector('.test');
  // handleCannon:
  test.addEventListener('click', () => {
    test.textContent = 'bananas';
    handleBullet.reset();
  });
  // ...

Обратите внимание, что назначение значение onload будет означать, что этот обработчик будет перезаписан, если что-либо еще назначит onload (аналогично, другой обработчик, уже находящийся в onload при выполнении этого скрипта, будет перезаписан) - вместо этого вы можете использовать addEventListener, разрешив сценарии для прослушивания события load в нескольких местах, что может быть полезно для больших или нескольких сценариев:

window.addEventListener('load', () => {
  const test = document.querySelector('.test');
  // handleCannon:
  test.addEventListener('click', () => {
    test.textContent = 'bananas';
    handleBullet.reset();
  });
  // ...
});
17
задан Josh 16 May 2009 в 17:56
поделиться

3 ответа

Вы можете получить запрошенный домен с неповрежденным субдоменом, используя " Request.Headers [" HOST "] ". Вот простой метод, который возвращает поддомен текущего запроса. Этот метод также предполагает, что у вас есть ".COM", ".NET" и т. Д. После домена, как в реальной сети. Итак, вы захотите изменить свой файл HOSTS, включив в него «localhost.com», «abc.localhost.com» и т. Д.

public string subdomain()
{
    string host = Request.Headers["HOST"];
    if (!string.IsNullOrEmpty(host))
    {
        var parts = host.Split('.');
        if (parts.Length > 2)
        {
            return parts[0];
        }
    }
    return string.Empty;
}

Я искал именно это, и вот статья, которая на самом деле помогла мне понять это вне: https://web.archive.org/web/20090813174916/http://blogs.securancy.com/post/ASPNET-MVC-Subdomain-Routing.aspx

9
ответ дан 30 November 2019 в 12:27
поделиться

Не знаю насчет заголовков, но я использовал один малоизвестный трюк: все адреса 127. * являются адресами localhost, а не только 127.0.0.1. Фактически вы можете запустить один сервер, прослушивающий порт 80 127.0.0.1, а другой экземпляр веб-сервера, прослушивающий порт 80 127.0.0.2. Тогда вы должны назвать 127.0.0.1 localhost, 127.0.0.2 может быть abc.localhost (или abc.mydomain .com, чтобы вы могли проверить реальные живые URL-адреса на вашем локальном веб-сервере) и т. д.

11
ответ дан 30 November 2019 в 12:27
поделиться

Я использую Windows 7, IIS 7.5, VS 2008, SQL server 2005

Мне удалось успешно смоделировать субдомен при покупке localhost, поместив следующую строку в etc / hosts

127.0.0.2   myapp.localhost.com

и , в IIS я создал новый веб-сайт со следующими изменениями в разделе привязок:

Hostname = myapp.localhost.com 
IP address = 127.0.0.2

Я также создал новый пул приложений, но в этом нет необходимости. Возможно, вам придется изменить пользователя аутентификации, который используется для работы с запросами. У меня были ошибки разрешения подключения SQL с пользователем IIS по умолчанию.

IIS>Application Pools>>Right Click on your pool>Advanced Settings>Identity = LocalSystem
11
ответ дан 30 November 2019 в 12:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: