【问题标题】:asp.net css issue after deployment部署后的asp.net css问题
【发布时间】:2012-02-08 01:43:05
【问题描述】:

我遇到了一个非常奇怪的问题。我在本地开发了一个应用程序,一切正常。但是在生产服务器上我有几个问题。最烦人的是登录后导航菜单会从水平变为垂直。

site.Master

<asp:Menu ID="NavigationMenu" 
          runat="server" 
          cssclass="menu" 
          EnableViewState="false" 
          IncludeStyleBlock="false" 
          Orientation="Horizontal" 
          StaticDisplayLevels="1" 
          staticsubmenuindent="10" 
          target="_blank" 
          MaximumDynamicDisplayLevels="1" 
          Enabled="False" 
          Visible="False"> 

网站.css

/* TAB MENU   
----------------------------------------------------------*/

div.hideSkiplink
{
    background-color:#3a4f63;
    width:20%;
    z-index:9999;
}

div.menu
{
    padding: 4px 0px 4px 8px;
      z-index:9999;
}

div.menu ul
{
    list-style: none;
    margin: 0px;
    padding: 0px;
    width: 20%;
    z-index:9999;
    }

div.menu ul li a, div.menu ul li a:visited
{
    background-color: #465c71;
    border: 1px #4e667d solid;
    color: #dde4ec;
    display: block;
    line-height: 1.35em;
    padding: 4px 20px;
    text-decoration: none;
    white-space: nowrap;
      z-index:9999;
   }

div.menu ul li a:hover
{
    background-color: #bfcbd6;
    color: #465c71;
    text-decoration: none;
      z-index:9999;
   }

div.menu ul li a:active
{
    background-color: #465c71;
    color: #cfdbe6;
    text-decoration: none;
      z-index:9999;
   }

我使用的css是默认的。

我搜索了网络,但没有提出解决方案。是服务器问题吗?是我的代码吗?

这个线程有确切的问题。 http://forums.asp.net/t/1762140.aspx/1?Odd+menu+problem+after+deployment,没有提出解决问题的办法

谢谢

【问题讨论】:

  • 您链接的线程确实提出了一个解决方案 - 检查您的浏览器是否阻止了 javaScript。如果做不到这一点,登录还能做什么?切换到https?如果是这样,您的 CSS/js 文件是否仍通过 http 提供服务?
  • 问题仍然存在,您能否在线程中指出解决方案,我不是很有经验。我做了我理解的一切。 JavaScript 也没有被阻止。
  • 上一篇文章展示了一个解决方案 - OP 在服务器上使用本地浏览器,该浏览器具有限制性安全设置(由于是 Server 2008R2)。您使用什么浏览器进行测试 - 它是否发生在所有浏览器中?生产/开发环境中有什么操作系统?如果你打开 FireBug/similar,你能看到任何 javascript 错误/页面没有加载到 net 选项卡中吗?
  • 使用 firebug 我发现我的应用程序的部署版本有一些差异。对于本地导航菜单,代码为
  • 将 m,y cmets 移动到答案中...

标签: asp.net css


【解决方案1】:

很可能,添加类的 javascript 没有在页面上运行

可能有很多原因

  • 未正确部署。
  • 实时服务器上的路径不正确(您是否在不同的目录布局中 - 例如 /JavaScript/ 而不是 /myapp/JavaScript/
  • NoScript 或其他插件阻止了 javascript(特定于浏览器)
  • JS 中的某些内容在实时中断并阻止执行,然后才到达相关代码

要跟踪问题 - 转到 firefbug 中的 net 选项卡并查看 javascript - 它是否都加载了 HTTP 200(Ok)?有 404/500 吗?

尝试在您的浏览器中禁用所有插件/使用不同的浏览器 - 同样的问题?

在 firebug 或 JavaScript 控制台中打开 Script 选项卡(在 Firefox 中为 CTRL Shift K

重新加载您的页面并查看是否出现任何错误/警告。

用上面的结果编辑你的答案,我们会看看我们能做什么。

编辑:

关于 403/Forbidden - WebResource.axd 是 .Net Control-specific JS 所在的位置,所以这几乎肯定是你的问题。为了让它更有趣,.axd 通常不是真实文件 - 它们是 HTTP 处理扩展 - 请参阅 herehere 了解更多信息。检查您的 web.config - 是否在 Live 中设置了适当的处理程序?应该是……

<add path="WebResource.axd"
         verb="GET"
         type="System.Web.Handlers.AssemblyResourceLoader"
         validate="True" />

如果您有这样的条目,您可以编辑您的问题以准确包含它吗?如果没有,请尝试添加它

Possible fix here

实时服务器是否安装了与您的开发机器相同版本的框架/控件 - 确保它有!

需要注意的另一件事是,如果您手动部署网站,文件通常归您所有,而不是网络服务器 - 这有时可能意味着网络服务器无法读取网站以提供服务。我怀疑这是这里的问题,但这是未来需要注意的事情。 (要检查,网站用户是在 IIS 管理器中网站的应用程序池中指定的)。

【讨论】:

  • 并使用 ctrl-F5 重新加载,以防您有 js 文件的缓存版本。
  • 确实很棒。 Chrome 内置了几乎相同的功能(按 F12)-@dotjoe 在 Net 选项卡下拉列表中有一个选项可以在 Firebug 打开时禁用浏览器缓存-就我个人而言,我一直都打开它。
  • 你会说我是一个完全的菜鸟,但 Firebug 很棒......检查网络选项卡我的默认页面加载了 http 200。我的 site.css 修改了 304 然后它尝试GET Webresource.axd,它不能。它得到 403 禁止(2 次)。为了回答您的其他问题,我仅通过上传所有文件来部署该站点(从 Visual Studio 复制或发布网站不起作用)。我不知道实时服务器上的正确路径。没有插件阻止 javascript
  • site.css 始终为 http 200。问题似乎是网络资源。这是服务器端问题吗?
  • 您可以通过在页面呈现后使用 firebug 添加缺少的类来测试 CSS 是否正常。由于权限错误,服务器似乎没有为 .Net 控件使用的 javascript 提供服务。
猜你喜欢
相关资源
最近更新 更多
热门标签