【问题标题】:Relative URL slash when using base tag使用基本标记时的相对 URL 斜线
【发布时间】:2014-09-25 15:50:01
【问题描述】:

我正在尝试更多地了解使用 JSP 解释路径的方式。

当使用 HTML 基本标签和相对 URL 时,用斜杠结束基本 href 是否非常标准?

我问的原因是因为我经常需要根据 JSP 中的上下文根来表达事物(例如,对于表单操作),以便将表单路由到我映射的适当 servlet在 web.xml 中。

大多数时候我每次都使用${pageContext.request.contextPath},直到我了解了基本标签。

但是,我猜由于在 JSP 中斜杠被服务器解释为 Web 应用程序的根,所以我不能将我的基础设为,例如:

<base href="/foo"/>

然后在表格中有:

<form action="/extension">
...
</form>

因为这会导致表单被提交到mydomain.com/extension 而不是mydomain.com/foo/extension。我是否正确理解这一点,因为斜杠具有特殊含义,您通常需要以反斜杠结束基本 HREF 才能获得所需的效果?

谢谢

【问题讨论】:

    标签: html jsp


    【解决方案1】:

    不是真的。

    浏览器不会简单地连接您的基本 href 属性和相对 URL。 相反,&lt;base&gt; 标记设置 Document base URL,然后用于动态生成新路径。

    您可以在 WHATWG HTML 规范中看到一个有趣的示例:

    <base href="http://www.example.com/news/index.html">
    <p>Visit the <a href="archives.html">archives</a>.</p>
    

    请注意,href 属性甚至以文件名结尾。

    这意味着,如果您没有在基本href 属性中添加斜杠,foo 将被视为路径的最后一个易变部分,并且基本上将被删除。举例:

    <base href="http://www.example.com/news/index.html" />
    <img src="ball.png" /> <!-- GET http://www.example.com/news/ball.png -->
    

    <base href="http://www.example.com/news/" />
    <img src="ball.png" /> <!-- GET http://www.example.com/news/ball.png -->
    

    <base href="http://www.example.com/news" />
    <img src="ball.png" /> <!-- GET http://www.example.com/ball.png -->
    

    <base href="http://www.example.com/" />
    <img src="ball.png" /> <!-- GET http://www.example.com/ball.png -->
    

    <!-- If served from http://www.example.com: -->
    <base href="/" />
    <img src="ball.png" /> <!-- GET http://www.example.com/ball.png  -->
    

    【讨论】:

    • 但是这个例子不会带你去example.com/news/index.html/archives.html吗?
    • 这就是重点,它不会。它会带你到example.com/news/archives.html。
    • 我明白了。那么使用 example.com/news/index.html"> 而不是 example.com/news"> 似乎后者更清楚
    • 或者你只是用那个作为例子,最后使用 index.html 不是你通常会看到的?
    • @Denis 只是为了让您知道您的答案中的链接不再有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-12
    • 2011-07-28
    • 2010-10-14
    • 2014-08-28
    • 1970-01-01
    • 2011-07-24
    • 2014-03-09
    相关资源
    最近更新 更多