如何为图像链接设置ContextPath

时间:2011-11-08 12:14:37

标签: html

我正在尝试将图像的上下文路径放在HTML中。<img src="/MyWeb/images/pageSetup.gif">

这里/ MyWeb是硬编码的ContextPath。我怎样才能动态地获得。

我使用<img src=contextPath+"/images/pageSetup.gif">,但图片未显示。有没有选择。

3 个答案:

答案 0 :(得分:2)

您无法在src属性中编写JavaScript。要做你想做的事,试试这样的代码:

var img = new Image();
img.src = contextPath + "/images/pageSetup.gif";
document.getElementById('display').appendChild(img);

这里的目标;您要显示图像的位置是div或span,带有id显示。

Demo

使用HTML,您将不得不承担一些产生错误的额外流量,因此您可以替换图片,或者您可以通过Google的方式发送一些流量。 请不要使用此:

<img src='notAnImage' onerror='this.src= contextPath + "/images/pageSetup.gif" '>

Demo

请勿使用此功能。

答案 1 :(得分:2)

首先,“上下文路径”是一个通常在JSP / Servlet Web应用程序中使用的术语,但您没有提及任何相关内容。然而,您的question history确认您正在使用JSP / Servlet。在将来,您应该告诉并标记您正在使用的服务器端语言,因为“纯HTML”根本没有“变量”和“动态生成”的概念。它是像JSP这样的服务器端语言,它具有维护和访问变量以及动态生成HTML的能力。可以使用JavaScript,但它有其局限性,因为它在webbrowser中运行,而不是在webserver中运行。

你最初的问题只会让回答者混淆并产生完全出乎意料的答案。使用问题标记,您可以访问特定目标组。如果单独使用[html]标记,您将得到答案,假设您使用的是纯HTML /纯HTML而没有任何服务器端语言。


回到你的问题:你可以使用${pageContext.request.contextPath}

<img src="${pageContext.request.contextPath}/images/pageSetup.gif">

另见:

答案 2 :(得分:0)

您必须使用JavaScript。

首先,让所有图像指向您域上的一些虚拟空图像,同时将实际路径作为自定义属性:

<img src="empty.gif" real_src="/images/pageSetup.gif" />

现在有了这样的JavaScript代码来迭代所有图像并更改它们的源以使用上下文路径:

var contextPath = "/MyRealWeb";
window.onload = function() {
    var images = document.getElementByTagName("img");
    for (var i = 0; i < images.length; i++) {
        var image = images[i];
        var realSource = image.getAttribute("real_src") || "";
        if (realSource.length > 0)
            image.src = contextPath + realSource;
    }
};