Pregunta

Estoy tratando de utilizar la biblioteca IE7-js para hacer mis navegadores menos de IE9 piensan que son IE9. La biblioteca se encuentra alojado aquí:

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

y estoy referencia a ella de la siguiente manera en mi página principal:

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

Desde que he introducido este archivo, mi fábrica controlador StructureMap - definido aquí:

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...

        }
    }
}

se captura el error siguiente:

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

pero no es sólo eso - que estoy recibiendo un error similar para cada archivo CSS que estoy haciendo referencia. Por qué sería este el caso?

Para aclarar, estos archivos CSS están alojados en un dominio diferente que la que yo estoy trabajando. ¿Sería este el problema?

¿Por qué se solicita CSS conseguir encaminan a mi solicitud? Me pregunto si esto es algo que pueda prevenir / trabajo alrededor?

Actualización:

he presentado esto como un error para el desarrollador. El informe de error es aquí: http://code.google. com / p / IE7-js / temas / detalle? id = 284

¿Fue útil?

Solución

Bueno, el archivo de script de Internet Explorer 7-JS está tratando de recuperar esos archivos desde el servidor para hacer algún trabajo en ellos.

mirando las secuencias de comandos aquí (sí, sé que no es IE9, pero esta fue la primera vez que vi no comprimido):

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

Se puede ver que está intentando cargar estos archivos CSS (línea 1170ish). Estoy pensando en el Sistema está viendo estas solicitudes de archivos CSS como una acción para interceptar y está bombardeando en él porque no puede entenderlo, y es por eso que está bombardeando en la ControllerFactory.

No estoy seguro de por qué ASP.NET MVC está mirando a ellos como una acción (GET / POST). Pero espero que esto ayude.

Otros consejos

Para aclarar, estos archivos CSS están alojados en un dominio diferente que la que yo estoy trabajando. ¿Sería este el problema?

Como Ryan menciona el código en 1170ish está tratando de determinar la ruta de los archivos CSS. Por alguna razón que está suponiendo que están en el mismo dominio, así que lo consideraría un error / característica del IE9.js. Con el tiempo estos dos métodos serán llamadas que aparecen a truncar el dominio de la ruta:

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);
};
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top