Почему IE7-JS запрашивает файлы CSS из моего приложения?

StackOverflow https://stackoverflow.com/questions/3762534

  •  04-10-2019
  •  | 
  •  

Вопрос

Я пытаюсь использовать библиотеку IE7-JS, чтобы заставить мои браузеры меньше, чем IE9, думают, что они IE9. Библиотека размещена здесь:

http://code.google.com/p/ie7-js/

И я ссылаюсь на него следующим образом на моем главном странице:

<!--[if lt IE 9]>
<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE9.js"></script>
<![endif]-->

Поскольку я представил этот файл, мой структурный контроллер контроллера - определен здесь:

public class StructureMapControllerFactory : DefaultControllerFactory
{
    protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
    {
        try
        {
            if (controllerType == null) return base.GetControllerInstance(requestContext, controllerType);
            return ObjectFactory.GetInstance(controllerType) as IController;
        }
        catch (System.Exception xpt)
        {
            // The controller for path '/WSOD-layout-page.css' was not found or does not implement IController.
            // The controller for path '/layout-header.css' was not found or does not implement IController.
            // The controller for path '/layout-content.css' was not found or does not implement IController.
            // The controller for path '/component-leaderboard.css' was not found or does not implement IController.
            // etc...

        }
    }
}

ловит следующую ошибку:

System.Web.HttpException: The controller for path '/component-page-title.css' was not found or does not implement IController.

Но это не только это - я получаю аналогичную ошибку для каждого файла CSS, который я ссылаюсь. Почему это будет так?

Чтобы уточнить, эти файлы CSS размещаются на другом домене, чем у меня, над которым я работаю. Будет ли это проблема?

Почему CSS-запросы будут направлены на мое приложение? Мне интересно, если это то, что я могу предотвратить / работать?

Обновлять:

Я отправил это как ошибку разработчику. Отчет об ошибках здесь: http://code.google.com/p/ie7-js/issues/detail?id=284.

Это было полезно?

Решение

Ну, файл скрипта IE7-JS пытается получить эти файлы с вашего сервера, чтобы сделать некоторые работы над ними.

Глядя на скрипты здесь (да, я знаю, что это не IE9, но это было первое не сжатое я видел):

http://code.google.com/p/ie7-js/source/browse/version/2.0(beta)/src/ie8.js.

Вы можете увидеть, что он пытается загрузить эти файлы CSS (строку 1170). Я думаю, что система увидит эти запросы файлов CSS как действие для перехвата и бомбардирует на нем, потому что он не может этого понять, и поэтому это бомбардирует на контроллере.

Я не уверен, почему ASP.NET MVC смотрит на них как действие (Get / Post). Но я надеюсь, что это поможет.

Другие советы

Чтобы уточнить, эти файлы CSS размещаются на другом домене, чем у меня, над которым я работаю. Будет ли это проблема?

Когда Райан упомянул код на 1170 году, пытается определить путь к файлам CSS. По какой-то причине он предполагает, что они находятся в том же домене, поэтому я бы рассмотрел его ошибкой / особенностью IE9.JS. В конце концов эти два метода вызываются, которые, кажется, усекают домен с пути:

var RELATIVE = /^[\w\.]+[^:]*$/;
function makePath(href, path) {
  if (RELATIVE.test(href)) href = (path || "") + href;
  return href;
};

function getPath(href, path) {
  href = makePath(href, path);
  return href.slice(0, href.lastIndexOf("/") + 1);
};
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top