4

我已将我的应用程序部署到我的 IIS 服务器。当我从 IIS 服务器浏览网页时,javascript/css 似乎可以工作(尽管某些 css 似乎也没有加载)。但是,当我转到另一台机器并从客户端查看网页时,似乎没有启用任何 Javascript。脚本的链接在那里,当我在浏览器中输入它们的路径时,我可以检索文件(所以这不是权限问题或路径问题)。是的,我正在查看页面的浏览器启用了 javascript(如果我在 Visual Studio 工作,这是我的开发机器,一切正常)。

谁能帮我弄清楚这里发生了什么?在我的开发机器上一切正常。


编辑

好的,我已经尝试了所有可以在互联网上找到的东西。我尝试添加“捆绑”模块,删除然后添加(如下所示),我尝试使用和不使用“runAllManagedModulesForAllRequests”,我尝试启用和禁用

<compilation debug="false" targetFramework="4.5" />

似乎没有任何效果。

<modules runAllManagedModulesForAllRequests="true">
    <remove name="UrlRoutingModule-4.0" />
    <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
    <remove name="BundleModule" />
    <add name="BundleModule" type="System.Web.Optimization.BundleModule" />
    <!-- any other modules you want to run in MVC e.g. FormsAuthentication, Roles etc. -->
</modules>

我只是不明白为什么当您在服务器上本地浏览网站时 IIS7 会做一些不同的事情,而当您在不同的机器上浏览网站时会做另一件事?


编辑 2

更莫名其妙。我认为捆绑可能有问题(某些程序集未正确加载谁知道),因此为了测试理论,我注释掉了布局上的所有捆绑代码,并将其替换为样式/javascript 的硬编码链接。同样,它在开发中有效,在服务器上预览时有效,但是当您转到客户端计算机时,似乎没有任何 javascript 有效!!!我现在已经将它安装在两个不同的 IIS 服务器上......仍然是同样的问题!


编辑 3

难以置信的。看起来问题是... 鼓声。IE10。我正在使用集成身份验证,所以我只使用 IE。直到我意识到 chrome 也可以提示/传递凭据。所以我从 Chrome 打开了这个网站,没问题!我将开发机器上本地版本的 html 与来自服务器的 html 进行了比较,除了 URL 在路径中有一个额外元素(站点部署到虚拟目录)之外,html 是相同的。因此,无论出于何种原因,IE 都决定它不会从我的 IIS 服务器运行 javascript,但它会从 Internet 上的所有其他网站运行。我什至使用 fiddler 来仔细检查是否所有的 css/javascript 都被获取和接收(它们是,甚至在彻底扫描后检查临时文件夹以查看 css/js 是否已下载)。所以,像往常一样,IE 是个废话,只会引起头痛和痛苦。现在要弄清楚如何解决这个问题(我的组织是 80% 的 IE)。

4

2 回答 2

3

因此,对于可能遇到相同问题并且必须使用 IE 的任何人,我通过将其添加到我的 _layout.cshtml 来解决问题:

<meta http-equiv="X-UA-Compatible" content="IE=edge" />

它的作用是指示 IE 使用最新的可用渲染引擎来处理 html(换句话说,不要试图聪明地猜测我的 html 是为什么而构建的)。所以它基本上告诉具有“兼容模式”的 IE 版本不要使用它。

对我来说,这很好用,因为我们的组织很小,而且我们通常只使用最新版本的 IE 的一个版本。如果最新版本引起问题,我可以轻松修复和部署而不会造成任何伤害。但是,这对于在各种 IE 浏览器上拥有大量用户的通用网站或组织来说并不是最佳选择。

于 2013-09-08T19:57:04.340 回答
0

我也遇到过这个问题。

我发现在使用我们的公司网络浏览互联网时,Internet Explorer 被设置为“高”。将站点添加到受信任站点区域后,一切正常。

您可以检查您的站点是否在受信任的站点区域,但转到Internet 选项->安全->站点

在此处输入图像描述

于 2017-09-13T12:10:40.247 回答