当前位置:编程学习 > C#/ASP.NET >>

URLRewriter重写,无后缀的错误~~~在线等

我在web.config的httpHandlers添加了
<add verb="*" path="*" type="URLRewriter.RewriterFactoryHandler, URLRewriter"/>
在RewriterConfig写了一句   
 <LookFor>~/Space/([A-Za-z0-9]+$)</LookFor>
 <SendTo>~/Space/Default.aspx?space=$1</SendTo>
这样当输入网址http://localhost/Space/kevin
网址是可以找到,就是不找不到CSS包括图片,请高人指点

其它的重写有后缀的html是可以的,如:
        <LookFor>~/Space/photo_(.[0-9]*)\.html</LookFor>
        <SendTo>~/Space/photo.aspx?pid=$1</SendTo> --------------------编程问答-------------------- 打开源代码看看图片的路径 --------------------编程问答-------------------- 图片,css请使用站点根路径

/images/aaa.jpg --------------------编程问答-------------------- 我也遇到了。想求高人解答 --------------------编程问答-------------------- 在线等 --------------------编程问答-------------------- 虽说是两年前的帖子,但找不到解决方法。 --------------------编程问答--------------------
引用 5 楼 guanxi19831001 的回复:
虽说是两年前的帖子,但找不到解决方法。

--------------------编程问答-------------------- 这贴是结不了了. --------------------编程问答-------------------- --------------------编程问答-------------------- CSS包括图片
好像不会交给IIS处理吧。
建议楼主看一看url重写的原理,http://msdn.microsoft.com/zh-cn/library/ms972974.aspx --------------------编程问答-------------------- 楼主已经远去! --------------------编程问答--------------------
引用楼主 wzkevin 的回复:
我在web.config的httpHandlers添加了
<add verb="*" path="*" type="URLRewriter.RewriterFactoryHandler, URLRewriter"/>
在RewriterConfig写了一句 
<LookFor>~/Space/([A-Za-z0-9]+$) </LookFor>
<SendTo>~/Space/Default.aspx?space=$1 </SendTo>
这样当输入网址http://localhost/Space/kevin
网址是可以找到,就是不找不到CSS包括图片,请高人指点

其它的重写有后缀的html是可以的,如:
        <LookFor>~/Space/photo_(.[0-9]*)\.html </LookFor>
        <SendTo>~/Space/photo.aspx?pid=$1 </SendTo>

这是urlrewrite导致的 "假目录",进而导致css不可用.

假设当前页面中有一个css,引用路径是  css/xx.css(实际上在~/Space/css目录下)

当URL变成http://localhost/Space/kevin后
当前页面引用的css文件就会从http://localhost/Space/kevin/css/下寻找
但实际上是在http://localhost/Space/css/下,所以会找不到.

解决办法是用绝对路径:
<link rel="stylesheet" type="text/css" href="http://localhost/Space/css/xx.css" />


--------------------编程问答-------------------- 将图片作为服务器控件就能显示了
      runat=“server” --------------------编程问答-------------------- 召唤版主结贴........ --------------------编程问答-------------------- 使用绝对路径就ok啦....等下辈子他来结贴吧 --------------------编程问答-------------------- 通过http://localhost/Space/kevin打开网页,浏览器会在kevin目录下找所需的css或图片之类的,应该用绝对路径

如果网站很稳定,域名、目录名不会改变,就直接把css和图片之类的路径改为绝对路径
可以在路径中加<%=Request.Url.Host %>表示网站当前的域名,用javascript好像也可以 --------------------编程问答-------------------- Up学习了!
刚好接下去要用到! --------------------编程问答-------------------- never ending --------------------编程问答--------------------
引用 10 楼 denglinlidll1234 的回复:
楼主已经远去!

我按楼主的写法,怎么实现不了http://localhost/Space/kevin这种写法,谁帮我,谢谢 --------------------编程问答-------------------- 1年又1年啊  --------------------编程问答-------------------- 方法1:
<add verb="*" path="*.css" type="System.Web.StaticFileHandler"/>
            <add verb="*" path="*.js" type="System.Web.StaticFileHandler"/>
            <add verb="*" path="*.jpg" type="System.Web.StaticFileHandler"/>
            <add verb="*" path="*.gif" type="System.Web.StaticFileHandler"/>
            <add verb="*" path="*.png" type="System.Web.StaticFileHandler"/>
            <add verb="*" path="*" type="URLRewriter.RewriterFactoryHandler, URLRewriter"/> --------------------编程问答-------------------- 方法2:
把  <add verb="*" path="*"   type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
       改为  <add verb="*" path="/*"    type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
       且以上文件不要放在根目录
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,