Почему ie7-js запрашивает файлы CSS из моего приложения? - PullRequest
0 голосов
/ 21 сентября 2010

Я пытаюсь использовать библиотеку 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]-->

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

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

Ответы [ 2 ]

0 голосов
/ 21 сентября 2010

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

Как упоминал Райан, код на 1170ish пытается определить путь для файлов 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);
};
0 голосов
/ 21 сентября 2010

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

глядя на сценарии здесь (да, я знаю, что это не Ie9, но это был первый несжатый файл, который я увидел):

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

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

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

...