【问题标题】:HTML Base URL and linksHTML 基本 URL 和链接
【发布时间】:2011-05-21 10:37:26
【问题描述】:

我有以下问题:

URL 是 http://www.myhomeurl.com/application1/,基础是:

<base href="http://www.myhomeurl.com/"/>

图片、css和javascript等所有资源都在:

http://www.myhomeurl.com/css/myfile.css
http://www.myhomeurl.com/js/myscript.js
http://www.myhomeurl.com/images/img.jpg

但是,链接会在“application1”,例如:

http://www.myhomeurl.com/application1/page1.html
http://www.myhomeurl.com/application1/page2.html
http://www.myhomeurl.com/application1/page3.html

问题是:如何为资源(如css、js等)应用base URL,并为页面链接应用base/application1?

当我遇到以下问题时:

<a href="page1.html">Click me!</a>

当用户点击此页面时,页面将转到:

http://www.myhomeurl.com/page1.html

而不是:

http://www.myhomeurl.com/application1/page1.html

【问题讨论】:

  • 您的应用程序文件应该从根目录开始,并且应该扩展//
  • 您是要求创建站点还是现有站点中的现有链接?我问是因为应该知道

标签: php javascript jquery html url


【解决方案1】:

当使用基本 url 时,你不应该在里面放 www.

接下来,如果您的 url 是 mysite.com 并且您的应用程序位于 mysite.com/app,那么您将基础设置为 mysite.com/app,当您使用示例 info.html 时,它将看起来像 mysite.com/app/info.html

你也可以使用../app/info.html,它看起来像mysite.com/app/info.html

【讨论】:

    【解决方案2】:

    我会从 / 和 URI 的顶级目录开始所有链接群。这使它们相对于域。然后只需将协议和域放在基础中即可。

    【讨论】:

      【解决方案3】:

      这个问题我有点晚了,但我看不出没有一个答案真的能满足你(我认为)的需要。

      我建议您使用(正如其他人已经说过的)这样的 Base Url:

      <base href="http://www.myhomeurl.com/application1/" />
      

      这样您的链接将以预期的方式工作。然后,当你添加资源时,你只需要上到父目录,如下所示:

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

      或者

      <style type="text/css">
        @import url(../css/myfile.css);
      </style>
      

      注意../,告诉浏览器退出“application1”目录,在文件结构中上一级。

      希望这会有所帮助:)

      【讨论】:

        【解决方案4】:

        您可以使用基础标记并对其进行更改,以便所有 url 都可以相对于应用程序基础。

        <!DOCTYPE HTML>
        <html>
          <head>
            <base href="http://www.myhomeurl.com/application1/" />
          </head>
          <body>
            <!-- content -->
          </body>
        </html>
        

        更多信息请访问http://www.w3schools.com/tags/tag_base.asp

        编辑:基本标签http://www.w3.org/TR/html4/struct/links.html#h-12.4 上的w3c 规范还说明了如何从其他位置提取图像。

        【讨论】:

        • 我有基本标签...但是资源...不在 application1/
        【解决方案5】:

        在您的资源上进行这样的更改

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

        不像

        <link href="http://www.myhomeurl.com/css/myfile.css" rel="stylesheet" type="text/css" />
        

        你的基地看起来像这样

        <base href="http://www.myhomeurl.com/application1/"/>
        

        【讨论】:

          【解决方案6】:

          定义两个常量,一个用于您的 css、js 资源,一个用于链接,并在整个应用程序中使用它们:-

          define('RESOURCE_URL','http://www.myhomeurl.com/');
          define('LINK_URL','http://www.myhomeurl.com/application1');
          

          因此,如果基本 url 发生任何变化,您只能查看这些常量。

          【讨论】:

            【解决方案7】:

            你应该有这样的东西

            root 
            
               root/css
               root/js
            
               root/files/html1.htm
               root/files/htmml2.htm
            

            root 将只是 /// 你的网站名称

            http://www.myhomeurl.com
            

            【讨论】:

              【解决方案8】:

              在链接 HTTP_SERVER 中使用这个变量

              define('HTTP_SERVER', 'http://www.myhomeurl.com/application1/');
              
              <a href="<?php echo HTTP_SERVER?>myurlpage/page1.html">Click me!</a>
              

              【讨论】:

                猜你喜欢
                • 2011-07-06
                • 2023-04-07
                • 2011-04-24
                • 1970-01-01
                • 1970-01-01
                • 2016-12-30
                • 2021-10-16
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多