zoukankan      html  css  js  c++  java
  • 用户控件与路径问题的尴尬,大难题呀

    以前都是用框架结构来做网页的,但是后来碰上个难缠的客户,遇到了框架与非框架页间切换定位的难题。要求首面不用框架,其它页用框架结构。在非框架结构的首页点击后分页刷新框架页中的4个页面,同时切回框架时还要重新定位好。用了个卑鄙的方法算是解决了。

    这几天打算不用框架而全用usercontrol来实现,每个页面的头部都拖个控件就是了。结果碰上了一个新的大问题。主要是路径问题。

    其中文件目录结构如下。

    |
    |-[css]
    |   |-css.css
    |
    |-[images]
    |    |-标题.gif
    |    |-背景.gif
    |
    |-[UserControl]
    |    |-head.ascx
    |    |-.......
    |
    |-[模块1]
    |    |-其它.aspx
    |
    |-index.aspx
    |


    index.aspx:
     调用head.ascx

    其它.aspx
     调用head.ascx


    head.ascx:
    <LINK href="css/css.css" type="text/css" rel="stylesheet">
        调用head.ascx
    <td background="images/bar_bg.gif"><SCRIPT language="JavaScript" src="js/fade.js"></SCRIPT>
    <table >
    </table>
    </td>
    <asp:Image Runat="server" id="Image1" ImageUrl="../images/标题.gif"></asp:Image>
    <img  src="images/背景.gif">
    <td background="images/背景.gif">//没办法解决这个路径问题


    问题1:

    现在我们发现Image与img在指定图片路径时写法不同。
    <asp:Image   ImageUrl= 前面加了../
    <img src=直接用images

    为什么么。

    我们来分析一下
         index.aspx在最终生成HTML时。head.ascx实际上是加载到了根目录,所以head.ascx与images目录是同级的。
     
         img标签用的直接是html代码了。所以它在图片在指定路径时不要加../

         而<asp:image 是服务器控件。如果不给它加../images那么在生成最终页面后。将生成
         
    http://localhost/inf/UserControl/images/标题.gif
         而不是
         
    http://localhost/inf/images/标题.gif。而且<asp:image 比较智能。它能根据加载自己的页面的位置,动态调整最后生成的HTML。保证图片路径不错。

    最后我们实试一下。我们发现http://localhost/inf/index.aspx中所有图片正常,而http://localhost/inf/模块1/其它.aspx 中<asp:Image 显示正常,而<img 不正常。


    问题1解决方法:
       A:所有图片都用服务器控件<asp:Image 。但是对于那些作为<td 单元格背景的图片就没办法了
       B:或是不要分目录,所有aspx全扔在根目录。(完全解决。所有的问题都不是问题。但是是最垃圾的方案,整个程序目录结构真烂)


    问题2:
     现在,图片的问题基本解决。但是另忘记了。head.ascx中还有一段css和js脚本。当然要解决的话,在调用head.ascx的页面上自己加上,把路径写对就是了。

    但是现在看
    <td background="images/bar_bg.gif"><SCRIPT language="JavaScript" src="js/fade.js"></SCRIPT>
    <table >
    </table>
    </td>
    这一段。
    这个JS脚本很特殊,它希望只作用在<td></td>这前的那个table上。如果在整个页面都加的话。那么作用的范围就改变了。

     

     

  • 相关阅读:
    关于python Tk中实时的输出.
    tkinter调取签名网而设计签名页面(十七)
    多进程Multiprocessing模块
    tkinter做一个简单的登陆页面(十六)
    maven常用命令
    通用接口测试用例
    关于log4j
    场景测试-支付场景
    自动化测试的意义
    自动化测试之明确目的
  • 原文地址:https://www.cnblogs.com/tongzhenhua/p/48913.html
Copyright © 2011-2022 走看看