سؤال

أحاول استخدام مكتبة 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 هذه (السطر 1170ISH). أفكر في أن النظام يشاهد طلبات ملفات CSS هذه كإجراء لاعتراضها وتفجيرها لأنه لا يمكنه فهمه ، ولهذا السبب فإنه يتفجير على وحدة التحكم.

لست متأكدًا من سبب النظر إليهم ASP.NET MVC كعمل (الحصول على/منشور). لكن آمل أن يساعد هذا.

نصائح أخرى

للتوضيح ، يتم استضافة ملفات CSS هذه على مجال مختلف عن تلك التي أعمل عليها. هل ستكون هذه هي المشكلة؟

كما ذكر Ryan ، يحاول الكود على 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);
};
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top