Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
部署后asp.net css问题_Asp.net_Css - Fatal编程技术网

部署后asp.net css问题

部署后asp.net css问题,asp.net,css,Asp.net,Css,我遇到了一个非常奇怪的问题。我已经在本地开发了一个应用程序,所有的东西都可以正常工作。但是在生产服务器上,我有几个问题。最烦人的是在登录后从水平方向变为垂直方向的导航菜单 地点,主人 <asp:Menu ID="NavigationMenu" runat="server" cssclass="menu" EnableViewState="false" IncludeStyleBlock="false"

我遇到了一个非常奇怪的问题。我已经在本地开发了一个应用程序,所有的东西都可以正常工作。但是在生产服务器上,我有几个问题。最烦人的是在登录后从水平方向变为垂直方向的导航菜单

地点,主人

<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是默认的

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

这里有一个线程与确切的问题,这并没有提出解决问题的办法


非常感谢,添加类的javascript可能没有在页面上运行

可能有很多原因

  • 它没有正确部署
  • live服务器上的路径不正确(您是否在不同的目录布局中-例如
    /JavaScript/
    而不是
    /myapp/JavaScript/
  • NoScript或其他加载项正在阻止javascript(特定于浏览器)
  • JS中的某些内容在运行时中断,并在到达相关代码之前阻止执行
要跟踪问题,请转到firefbug中的“网络”选项卡并查看javascript,它是否都使用HTTP 200加载(Ok)?任何404/500

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

打开firebug中的
Script
选项卡或JavaScript控制台(Firefox中的CTRL-Shift K)

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

根据以上结果编辑您的答案,我们将看看我们能做些什么

编辑:

关于403/Forbidden,-WebResource.axd是.Net控件特定的JS所在的位置,因此这几乎肯定是您的问题。为了让它更有趣,.axd通常不是真实的文件-它们是HTTP处理扩展-请参阅和以获取更多信息。检查您的web.config-是否在Live中设置了相应的处理程序?应该是这样的我好像

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

live server是否安装了与您的开发机器相同版本的框架/控件-确保安装了


另一件需要注意的事情是,如果手动部署网站,文件通常由您所有,而不是由Web服务器所有-这有时可能意味着Web服务器无法读取网站来为其提供服务。我怀疑这是问题所在,但这是将来需要注意的问题。(要进行检查,请在IIS Manager中的网站应用程序池中指定网站用户).

你链接的线程确实提出了一个解决方案-检查你的浏览器是否阻止了javaScript。如果没有,登录还能做什么?将你切换到https?如果是,你的CSS/js文件是否仍然通过http提供服务?问题仍然在我身上,你能在线程中为我指出解决方案吗,我不是很有经验。我一直都是这样做的我明白了。JavaScript也没有被阻止。最后一篇文章展示了一个解决方案——OP在服务器上使用本地浏览器,该服务器具有限制性的安全设置(由于是服务器2008R2)。您使用什么浏览器进行测试?是否在所有浏览器中都会发生这种情况?生产/开发环境中有什么操作系统?如果打开FireBug/类似,是否可以看到任何未加载到net选项卡中的javascript错误/页面?使用FireBug,我发现部署的应用程序版本存在一些差异。对于本地导航菜单,代码为。The style属性是自动添加的。但在部署的版本上不是。我必须将差异添加到部署的版本吗?将m,y注释移动到答案中…并使用ctrl-F5重新加载,以防您缓存了js文件的版本。这真是太棒了。Chrome具有几乎相同的内置功能(按F12键)-和@dotjoe在Firebug打开时,
Net
选项卡下拉菜单上有一个选项可以禁用浏览器缓存-就我个人而言,我一直都开着它。你会说我是一个彻头彻尾的傻瓜,但Firebug太棒了…用http 200检查Net选项卡我的默认页面加载。用304修改我的site.css,然后它尝试获取Webresource。axd不能。它得到了403禁止(2次)。为了回答您的其他问题,我通过上传所有文件部署了该网站(xcopy或visual studio发布网站不起作用)。我不知道live server上的正确路径。没有加载项阻止javascriptthe site.css始终是http 200。问题似乎是webresource。这是服务器端问题吗?您可以在页面呈现后使用firebug添加缺少的类来测试css是否正常。看起来服务器没有提供所使用的javascript由于权限错误,由.Net控件执行。
<add path="WebResource.axd"
         verb="GET"
         type="System.Web.Handlers.AssemblyResourceLoader"
         validate="True" />