【问题标题】:Why is ie7-js requesting CSS files from my application?为什么 ie7-js 从我的应用程序请求 CSS 文件?
【发布时间】:2010-09-21 16:47:15
【问题描述】:

我正在尝试使用 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

【问题讨论】:

    标签: c# asp.net-mvc ie7.js


    【解决方案1】:

    IE7-JS 脚本文件正在尝试从您的服务器检索这些文件以对它们进行一些工作。

    查看这里的脚本(是的,我知道它不是 Ie9,但这是我看到的第一个非压缩文件):

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

    您可以看到它正在尝试加载这些 CSS 文件(第 1170 行)。我认为系统将这些 CSS 文件请求视为一种拦截操作并对其进行轰炸,因为它无法理解它,这就是它对 ControllerFactory 进行轰炸的原因。

    我不确定为什么 ASP.NET MVC 将它们视为一个操作 (GET/POST)。但我希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      澄清一下,这些 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);
      };
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-03
        • 2021-03-21
        • 2019-12-31
        • 1970-01-01
        • 2016-06-17
        相关资源
        最近更新 更多