Захватить маршрут CSS в MVC - PullRequest
0 голосов
/ 12 августа 2011

Я использую Asp Sprite и Image Optimization Framework, расположенные здесь для обработки любых спрайтов css на моем сайте. В зависимости от браузера браузер генерирует две разные ссылки, указывающие на эти два файла

  /App_Sprites/highCompat.css  - ie9, firefox, chrome

  /App_Sprites/lowCompat.css   - ie6, ie7

К сожалению, CSS-файлы не уменьшены и не могут быть перемещены из их текущего местоположения.

У меня есть свой собственный механизм минимизации, хотя он оборачивается вокруг библиотеки Ajaxmin, где я использую обработчик, чтобы выкинуть сжатый css на лету.

Это захватит такой путь.

/ css.axd путь = reset.css |? Style.css | helpers.css

Как я мог с помощью MVC перехватить запрос и переписать его, чтобы css подавался через мой минификатор?

Ура!

1 Ответ

2 голосов
/ 12 августа 2011

Довольно просто, на самом деле: поместите CSS где-то, кроме того, где URI в ваших точках разметки.

IIS не будет запускать обработчики маршрутов, если существует физический файл.Поэтому, если на вашем сайте есть физический файл ~/App_Sprites/highCompat.css, ваше приложение не сможет его перехватить (хотя вы могли бы сделать это с помощью HttpModule).Но если вы поместите файл в другое место и у вас будет App_SpritesController, тогда вы можете обрабатывать все как обычно в MVC.

Так что либо напишите HttpModule (это, вероятно, будет мой выбор), либо, если вы должны сделать это черезMVC, переместите файл.

...