none
母板里这样写合理吗 RRS feed

  • 问题

  • 我发现我的iis里不转成应用程序项目就有问题,我的代码如下,请指出问题在哪,怎样实践最好

    <%@ Master Language="C#" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>无标题页</title>
        <asp:ContentPlaceHolder id="head" runat="server">
            <meta name="ROBOTS" content="INDEX,FOLLOW,ALL"/>
              <meta name="revisit-after" content="2 days"/>
              <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <meta http-equiv="Content-Style-Type" content="text/css" />
            <meta name="verify-v1" content="3ZPpEkpvxtoloOODltw53dhz+WlFkCBzjm842GpEIGM=" />
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
            <link rel="Shortcut Icon" href="<%=Request.ApplicationPath %>/image/favicon.ico" />
            <script type="text/javascript" src="<%=Request.ApplicationPath %>/javascript/jquery-1.3.2.min.js"></script>
            <script type="text/javascript" src="<%=Request.ApplicationPath %>/javascript/jquery.pngFix.pack.js"></script>
            <script type="text/javascript" src="<%=Request.ApplicationPath %>/javascript/ddsmoothmenu.js"></script>
            <script type="text/javascript" src="<%=Request.ApplicationPath %>/javascript/jquery.corner.js"></script>
            <script type="text/javascript" src="<%=Request.ApplicationPath %>/javascript/swfobject_source.js"></script>
            <script src="<%=Request.ApplicationPath %>/javascript/ui.core.js" type="text/javascript"></script>
            <script src="<%=Request.ApplicationPath %>/javascript/ui.tabs.js" type="text/javascript"></script>
            <script type="text/javascript" src="<%=Request.ApplicationPath %>/javascript/modules/GrobalPointLLC.js"></script>
            <script type="text/javascript">
              var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
              document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));

              try {
                var pageTracker = _gat._getTracker("UA-7157272-2");
                pageTracker._trackPageview();
              } catch(err) {}
             
              ddsmoothmenu.init({
                mainmenuid: "smoothmenu1", //menu DIV id
                orientation: 'h', //Horizontal or vertical menu: Set to "h" or "v"
                classname: 'ddsmoothmenu', //class added to menu's outer DIV
                //customtheme: ["#f5bd50", "#18374a"],
                contentsource: "markup" //"markup" or ["container_id", "path_to_menu_file"]
              })
              $(function() {
                $('#rotate > ul').tabs({ fx: { opacity: 'toggle' } }).tabs('rotate', 4000);
              });
            </script>
        </asp:ContentPlaceHolder>
    </head>
    <body>
      <div id="banner">
        <div id="bannerLogo">
        <div id="logo"><a href="<%=Request.ApplicationPath %>/index.aspx"><asp:Image ID="Image1" runat="server" ImageUrl="image/logo.png" alt="GlobalPoint"/></a></div>
        <div id="search">
        <p>800<span style="font-size:8px;">&bull;</span>380<span style="font-size:8px;">&bull;</span>8595</p>
        <input type="text" style="height: 15px;" /> <input
          style="width: 21px; height: 21px; background: url(<%= Request.ApplicationPath %>/image/search.png) no-repeat bottom left; border: 0px;"
          type="submit" value="" /></div>
        </div>
        <div id="menu">
        <div class="ddsmoothmenu" id="smoothmenu1">
        <ul>
          <li class="useformat ie6submenu"><a href="<%=Request.ApplicationPath %>/index.aspx"><span style="_margin:0 5px;">Home</span></a></li>
          <li class="memuformat"><a href="<%=Request.ApplicationPath %>/aboutUs.aspx">About&nbsp;Us</a>
          <ul
            style="display: none; top: 29px; visibility: visible; left: 0px; ">
            <li><a class="fixIE" href="<%=Request.ApplicationPath %>/aboutUs.aspx#mission">Mission</a></li>
            <li><a class="fixIE" href="<%=Request.ApplicationPath %>/contact.aspx">Location</a></li>
            <li><a class="fixIE" href="<%=Request.ApplicationPath %>/aboutUs/workingWithUs.aspx">Working With Us</a></li>
            <li><a class="fixIE" href="<%=Request.ApplicationPath %>/aboutUs/communityOutreach.aspx">Community
            Outreach</a></li>
            <li><a class="fixIE" href="<%=Request.ApplicationPath %>/aboutUs/career.aspx">Career</a></li>
          </ul>
          </li>
          <li class="memuformat"><a href="<%=Request.ApplicationPath %>/services.aspx">Services</a>
          <ul
            style="display: none; top: 29px; visibility: visible; left: 0px; width: 171px;">
            <li><a class="fixIE" href="<%=Request.ApplicationPath %>/services/infrastructure.aspx">Infrastructure</a></li>
            <li><a class="fixIE" href="<%=Request.ApplicationPath %>/services/managed.aspx">Managed Services</a></li>
            <li><a class="fixIE" href="<%=Request.ApplicationPath %>/services/security.aspx">Security</a></li>
            <li><a class="fixIE" href="<%=Request.ApplicationPath %>/services/projectManagement.aspx">Project
            Management</a></li>
            <li><a class="fixIE" href="<%=Request.ApplicationPath %>/services/desktopSupport.aspx">Desktop Support</a></li>
            <li><a class="fixIE" href="<%=Request.ApplicationPath %>/services/sqlAdministration.aspx">SQL
            Administration</a></li>
            <li><a class="fixIE" href="<%=Request.ApplicationPath %>/services/sharepoint.aspx">SharePoint</a></li>
            <li><a class="fixIE" href="<%=Request.ApplicationPath %>/services/crm.aspx">CRM</a></li>
            <li><a class="fixIE" href="<%=Request.ApplicationPath %>/services/voIP.aspx">VoIP</a></li>
          </ul>
          </li>
          <li class="memuformat"><a href="<%=Request.ApplicationPath %>/contact.aspx">Contact</a>
          <ul
            style="display: none; top: 29px; visibility: visible; left: 0px; width: 171px;">
            <li><a class="fixIE" href="<%=Request.ApplicationPath %>/contact.aspx#chicago">Chicago</a></li>
            <li><a class="fixIE" href="<%=Request.ApplicationPath %>/contact.aspx#northern">Northern Suburbs</a></li>
            <li><a class="fixIE" href="<%=Request.ApplicationPath %>/contact.aspx#western">Western Suburbs</a></li>
          </ul>
          </li>
          <li class="memuformat"><a href="<%=Request.ApplicationPath %>/support.aspx">Support</a>
          <ul
            style="display: none; top: 29px; visibility: visible; left: 0px; width: 171px;">
            <li><a class="fixIE" href="<%=Request.ApplicationPath %>/support/networkResources.aspx">Network Resources</a></li>
            <li><a class="fixIE" href="<%=Request.ApplicationPath %>/support/desktop.aspx">Windows Desktop</a></li>
            <li><a class="fixIE" href="<%=Request.ApplicationPath %>/support/windowsServers.aspx">Windows Servers</a></li>
            <li><a class="fixIE" href="<%=Request.ApplicationPath %>/support/exchangeServer.aspx">Exchange Server</a></li>
            <li><a class="fixIE" href="<%=Request.ApplicationPath %>/support/development.aspx">Development</a></li>
            <li><a class="fixIE" href="<%=Request.ApplicationPath %>/support/backup.aspx">Backup Resources</a></li>
            <li><a class="fixIE" href="<%=Request.ApplicationPath %>/support/antivirus.aspx">Antivirus Tools</a></li>
          </ul>
          </li>
          <li class="memuformat"><a href="<%=Request.ApplicationPath %>/partners.aspx">Partners</a>
          <ul
            style="display: none; top: 29px; visibility: visible; left: 0px; width: 171px;">
            <li><a class="fixIE" href="<%=Request.ApplicationPath %>/partners/technologyPartner.aspx">Technology
            Partner</a></li>
            <li><a class="fixIE" href="<%=Request.ApplicationPath %>/partners/projectPartner.aspx">Project Partners</a></li>
          </ul>
          </li>
          <li class="useformat"><a href="<%=Request.ApplicationPath %>/login.aspx" style="border: 0;"><span style="_margin:0 6px;">Login</span></a></li>
        </ul>
        <br style="clear: left;" />
        </div>
      </div>
    </div>
    <div>
        <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
        </asp:ContentPlaceHolder>
    </div>
    <div id="footer">
      <div class="fleft">
        Global Point LLC &copy; 2008-2009 &bull;
        <a href="<%=Request.ApplicationPath %>/privacy.aspx">Privacy Policy</a> &bull;
        <a href="<%=Request.ApplicationPath %>/sitemap.aspx">Site Map</a>
      </div>
      <div class="fright">
        <span>RSS</span>
        <a href="#"><asp:Image ID="Image2" runat="server" ImageUrl="~/image/rss.png" alt="RSS" /></a>
      </div>
      <div style="display: none"><a href="http://www.gnusquad.com">Developed by GNUSquad</a></div>
    </div>
    </body>
    </html>
    2009年9月30日 8:31

答案

  • 1,采用绝对路径,在将网站部署在虚拟目录下是是存在问题的。
    2,采用相对目录,在不同的文件夹下的aspx是无法定位的。
    所以,如果要做到兼容,好的做法是程序自动识别路径。
    下面的方法就适应上面的所有情况:

    <script type="text/javascript" src="<%=Page.ResolveUrl("~/javascript/t.js")%>"></script>
    <script type="text/javascript" src="<%=Request.ApplicationPath=="/"?"":Request.ApplicationPath%>/javascript/t.js"></script>


    当然,计算路径的方法还有多种,上面是比较简洁的方法。你可以将所有的script包含做成一个用户控件,每个文件使用的时候只需要拖放这个用户控件即可,无需每个文件都写一块js文件的包含。

    另外,特别注意:~只能用在服务器端和服务器控件,js,css是不能使用的。

    【孟子E章】
    2009年10月4日 6:20
    版主
  • 不是这样做的,相对路径找不到,先说下我的目录结构

    master引用了javascript,这里是所有页面都同一的javascript
    按照楼上你的方法修改之后:
    index.aspx找得到    (这个是在网站根目录)
    abc/123.aspx     (这里有一层文件夹abc,下面的123.aspx就找不到javascript)
    用你的相对路径做的,就是找不到哦

    您好,所谓的相对路径,是指相对于当前网页的,在abc/123.aspx中就是相对于123.aspx,那么需要用../ /模式。如:<script type="text/javascript" src="../javascript/jquery-1.3.2.min.js"></script>这样。
    这样的话,就需要您准备两个master。

    如果想只要一个master,则采用<script type="text/javascript" src="<%=Page.ResolveUrl("~/javascript/jquery-1.3.2.min.js")%>"></script>。
    在另一个贴子我也提到了,楼上的几位版主都已提到了。希望有帮助!
    2009年10月4日 7:22
    版主

全部回复

  •  下面是我插入的javascript写法,感觉不是最好,因为不把项目专成应用程序,这些javascript是找不到的,有别的直接点的例子吗,谢谢     

     <script type="text/javascript" src="<%=Request.ApplicationPath %>/javascript/jquery-1.3.2.min.js"></script>
     <script type="text/javascript" src="<%=Request.ApplicationPath %>/javascript/jquery.pngFix.pack.js"></script>
     <script type="text/javascript" src="<%=Request.ApplicationPath %>/javascript/ddsmoothmenu.js"></script>
    • 已合并 KeFang Chen 2009年10月5日 1:50 reduplicate thread
    2009年9月30日 12:48
  • 用针对根目录的相对路径~如
    <script type="text/javascript" src="/javascript/jquery-1.3.2.min.js"></script>
    或者针对当前页面的相对路径~如
    <script type="text/javascript" src="./javascript/jquery-1.3.2.min.js"></script>
    2009年9月30日 13:45
    版主
  • 这样做肯定要碰到路径问题的
    2009年9月30日 14:12
  • 我用JS做过一个本地的HTML文件阅读器,我也考虑到每一个页面都要添加很多js引用很麻烦。
    所以我就想通过每一个页面只指定一个js引用,然后把其他js引用都放到调用进来。
    让每个文件夹层级的js引用都自动计算路径进行引用。
    你可以看看,里面有个Source文件夹的AutoPage.js有那个方法
    希望对你有用。
    可以从以下页面下载到那个程序。
    http://cid-bd89f4aa76e99184.skydrive.live.com/browse.aspx/.Public
    做最好的自己
    2009年9月30日 14:37
  • 对了,那个程序只能用IE打开,因为我需要用到一个ActiveX,它只能在IE中使用。
    你可以打开index.html看看效果。
    做最好的自己
    2009年9月30日 14:42
  • 您好,asp.net的web app必须和IIs里的应用程序对应。
    2009年9月30日 15:06
    版主
  • "<%=Request.ApplicationPath %>用不着这么复杂
    一般用~/就可以了
    2009年9月30日 15:38
  • 这个问题我试过啊,~/碰到路径不一样JAVASCRIPT就引用不到了
    2009年9月30日 16:33
  • 你这个做法我觉得太麻烦了
    2009年9月30日 16:34
  • 你好,

    一般都会把所有的js放在一个专门的文件夹下,然后采用绝对定位就行了。你所说的~/碰到路径不一样就不行了是什么意思呢?
    Microsoft Online Community Support
    2009年10月2日 2:42
  • 楼主,你好

    ^_^你重发帖子了。
    把所有的脚本放在一个专门的文件夹下,然后采用相对定位就行了。如:


    <script type="text/javascript" src="javascript/jquery-1.3.2.min.js"></script>
     <script type="text/javascript" src="javascript/jquery.pngFix.pack.js"></script>

    这样采用相对路径应该没问题了。


    Microsoft Online Community Support
    • 已编辑 KeFang Chen 2009年10月2日 4:41 js里面无法完全的做到绝对定位
    2009年10月2日 2:47
  • 您好,~的使用方法是应用在服务端控件上的。<script>并不是服务器控件,自然不行。
    建议按功能创建文件夹,尽量不在根目录下摆放文件,这样基本上可以使用类似../ /的路径来引用js。

    2009年10月2日 3:12
    版主
  • 的确如Jiyuan 所说,js里不识别我们通常在服务器端使用的"~/"这样的符号。
    在这种情况下似乎只有选择相对路径才行了。


    Microsoft Online Community Support
    2009年10月2日 4:45
  • 不是这样做的,相对路径找不到,先说下我的目录结构

    master引用了javascript,这里是所有页面都同一的javascript
    按照楼上你的方法修改之后:
    index.aspx找得到    (这个是在网站根目录)
    abc/123.aspx     (这里有一层文件夹abc,下面的123.aspx就找不到javascript)
    用你的相对路径做的,就是找不到哦
    2009年10月4日 3:39
  • 这样做肯定要碰到路径问题的

    你可以试一下第一种方法~src最前面有斜杠~无论aspx在哪个文件夹~都会从根目录开始定位~
    2009年10月4日 4:01
    版主
  • 1,采用绝对路径,在将网站部署在虚拟目录下是是存在问题的。
    2,采用相对目录,在不同的文件夹下的aspx是无法定位的。
    所以,如果要做到兼容,好的做法是程序自动识别路径。
    下面的方法就适应上面的所有情况:

    <script type="text/javascript" src="<%=Page.ResolveUrl("~/javascript/t.js")%>"></script>
    <script type="text/javascript" src="<%=Request.ApplicationPath=="/"?"":Request.ApplicationPath%>/javascript/t.js"></script>


    当然,计算路径的方法还有多种,上面是比较简洁的方法。你可以将所有的script包含做成一个用户控件,每个文件使用的时候只需要拖放这个用户控件即可,无需每个文件都写一块js文件的包含。

    另外,特别注意:~只能用在服务器端和服务器控件,js,css是不能使用的。

    【孟子E章】
    2009年10月4日 6:20
    版主
  • 不是这样做的,相对路径找不到,先说下我的目录结构

    master引用了javascript,这里是所有页面都同一的javascript
    按照楼上你的方法修改之后:
    index.aspx找得到    (这个是在网站根目录)
    abc/123.aspx     (这里有一层文件夹abc,下面的123.aspx就找不到javascript)
    用你的相对路径做的,就是找不到哦

    您好,所谓的相对路径,是指相对于当前网页的,在abc/123.aspx中就是相对于123.aspx,那么需要用../ /模式。如:<script type="text/javascript" src="../javascript/jquery-1.3.2.min.js"></script>这样。
    这样的话,就需要您准备两个master。

    如果想只要一个master,则采用<script type="text/javascript" src="<%=Page.ResolveUrl("~/javascript/jquery-1.3.2.min.js")%>"></script>。
    在另一个贴子我也提到了,楼上的几位版主都已提到了。希望有帮助!
    2009年10月4日 7:22
    版主