日期:2014-05-17  浏览次数:20327 次

伪静态样式丢失 可能是web.config设置的问题
情况是这样的:
我用URLRewriter 写伪静态

<httpHandlers>
  <add path="WebResource.axd" verb="GET" type="System.Web.Handlers.AssemblyResourceLoader" validate="True" />
<add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
<add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
<add verb="*" path="*" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />  
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
</httpHandlers>

增加了4条规则,就是红色部分 以后整站的样式都丢失了!
把css换绝对地址也不可以

<add path="WebResource.axd" verb="GET" type="System.Web.Handlers.AssemblyResourceLoader" validate="True" />
这句话是根据提示最后加上的

------解决方案--------------------
删除<add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
<add verb="*" path="*" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
只对aspx页面伪静态

------解决方案--------------------
红色的最后一行有问题:
 css 文件 js 文件 都是资源和访问页面是一样的 都是从服务器下载下来的 你用* 肯定是不行的。如果想要用到的css 文件有效果的话 可以在配置[当然你说的不用为静态的页面也没有了 也是*的问题 ] 这个问题可以这样 配置不同的文件夹。
------解决方案--------------------
是伪静态后,出现了目录变化,即伪目录,导致CSS相对路径错误

你可以将css文件路径写成绝对路径

譬如原为
<link href="css/anyke.css" rel="stylesheet" type="text/css" />
可以改为
<link href="/css/anyke.css" rel="stylesheet" type="text/css" />

另外要注意内联的CSS代码中的背景图URL,也要修改成绝对路径




------解决方案--------------------
探讨
这位大哥说的有点道理, 可是我改过文件路径,
<link href="http://cuihuanlin.53dns.com/css/css.css" rel="stylesheet" type="text/css" />
这样子的也不行

------解决方案--------------------
我也用的这种伪静态的方法
写成这样的格式就可以了
HTML code

<link href="/css/style.css" rel="stylesheet" type="text/css" />

------解决方案--------------------
探讨
这个方法用过了 貌似还是不行
"../css/css.css"
改成了
"/../css/css.css"