Циклы загрузки страницы перезаписи URL

#asp.net #url-rewriting

#asp.net #url-перезапись

Вопрос:

Я использую Intelligencia UrlRewriter для перезаписи URL-адреса.

Я взял page1.aspx и использовал OnClick событие кнопки и выполнил Response.Redirect to page2.aspx . Все работает нормально, если я протестирую эти две примерные страницы.

Затем я применил некоторые стили и javascript для page2.aspx . Когда я нажимаю одну и ту же кнопку на page1.aspx и ставлю точку останова на page2.aspx.cs page_load функции, я заметил, что page_load функция зацикливается несколько раз, и она зацикливает и загружает все вызовы базы данных несколько раз.

Применение IsPostback не помогло. Затем я удалил CSS и JS, после чего все в порядке.Нужен ответ, почему эта page_load функция повторяется несколько раз.

Комментарии:

1. установили ли вы правила перезаписи url для папок JS и css?

Ответ №1:

У меня тоже была эта проблема. Как и другие, это может быть вызвано относительными путями внутри вашей страницы.

Я переписывал:

 domain.com/article/12345/title-here 
  

Чтобы стать:

 domain.com/article.aspx?ID=12345
  

Проблема заключалась в том, что было 2 изображения с относительными путями:

   EG. images/fb.jpg
      images/tw.jpg
  

Путем записи значения в запросе.RawUrl.С помощью функции toString() я смог увидеть, что браузер запрашивал следующие изображения:

  domain.com/article/12345/images/fb.jpg

 domain.com/article/12345/images/tw.jpg
  

Хотя эти файлы не существуют, URL по-прежнему удовлетворял правилу перенаправления.

Таким образом, переписывая URL на:

 domain.com/article.aspx?ID=12345
  

Это объясняет, почему моя страница загружалась три раза. Один раз для HTML и один раз для каждого изображения.

Изменил значения src изображения на абсолютный путь, и проблема была решена.

Ответ №2:

Вы должны установить правила перезаписи для каталогов CSS и JS. Ваша страница вызывается снова и снова, потому что по запросу файлов css и JS ваша страница обслуживается. установите правила перезаписи для ваших CSS и JS в соответствии с вашей системой каталогов.

Редактировать не уверен, может сработать

 <rewrite url="^(/. (.gif|/. .png|.jpg|.ico|.pdf|.css|.js|.asmx|.axd|.flv|.swf)(?. )?)$" to="$1" processing="stop" />
  

Комментарии:

1. Все мои css-файлы находятся в папке Styles, а все мои js-файлы — в папках js, и обе эти папки находятся в папке main directory…so можете ли вы указать мне, как написать REWRITERULE в этом случае, поскольку я совершенно новичок в перезаписи URL и полностью потерян на этом этапе REWRITERULES …….. пытался, но не могу решить мою проблему

2. мое приложение находится на ASP .NET 3.5 C#

3. спасибо мистеру Пракашу, который действительно спас мой день … теперь это работает, и теперь я даже понял логику того, как с этим обращаться ……… можете ли вы также посоветовать несколько лучших ссылок, чтобы получить глубокие знания о переписывании URL… для asp.net Приложение 3.5 C #……..

Ответ №3:

Циклы загрузки страницы выполняются с использованием готовых ASP.Net также реализация. Один из способов, которым вы можете проверить наличие и уменьшить накладные расходы на обработку, — это проверить объект HttpContext, чтобы увидеть, какой объект запрашивается в данный момент. Если объект не соответствует вашим ожиданиям — изображение, файл .js, таблица стилей и т.д., прекратите обработку страницы.