Domanda

Sto cercando di usare la libreria IE7-js per fare il mio browser meno di IE9 pensano di essere IE9. La biblioteca è ospitata qui:

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

e sto riferimento come segue nella mia pagina master:

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

Da quando ho introdotto questo file, la mia fabbrica di controllo StructureMap - definito qui:

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

        }
    }
}

sta recuperando il seguente errore:

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

, ma non è solo questo - sto ottenendo un errore simile per ogni file css sto riferimento. Perché questo sarebbe il caso?

Per chiarire, questi file CSS sono ospitati in un dominio diverso da quello su cui sto lavorando. Questo sarebbe il problema?

Perché le richieste di CSS sempre indirizzate alla mia domanda? Mi chiedo se questo è qualcosa che posso prevenire / lavoro intorno?

Aggiornamento:

Ho presentato questo come un bug per lo sviluppatore. Il bug report è qui: http://code.google. com / p / IE7-js / temi / dettaglio? id = 284

È stato utile?

Soluzione

Bene il file di script IE7-JS sta cercando di recuperare quei file dal server di fare qualche lavoro su di loro.

guardando gli script qui (sì lo so che non è IE9, ma questo è stato il primo che ho visto non compresso):

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

Si può vedere che si sta tentando di caricare questi file CSS (linea 1170ish). Sto pensando il sistema è vedere queste richieste di file CSS come un'azione per intercettare e sta bombardando su di esso, perché non può capire, ed è per questo che è bombardamenti sulla ControllerFactory.

Non sono sicuro perché ASP.NET MVC sta guardando loro come un'azione (GET / POST). Ma spero che questo aiuta.

Altri suggerimenti

Per chiarire, questi file CSS sono ospitati su un dominio diverso da quello su cui sto lavorando. Questo sarebbe il problema?

Come Ryan menzionato il codice a 1170ish sta tentando di stabilire il percorso per i file CSS. Per qualsiasi motivo è ammesso che sono sullo stesso dominio in modo riterrei un bug / caratteristica di IE9.js. Alla fine, questi due metodi vengono chiamati che sembrano troncare il dominio dal percorso:

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);
};
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top