我正在尝试将图像的上下文路径放在HTML中。<img src="/MyWeb/images/pageSetup.gif">
这里/ MyWeb是硬编码的ContextPath。我怎样才能动态地获得。
我使用<img src=contextPath+"/images/pageSetup.gif">
,但图片未显示。有没有选择。
答案 0 :(得分:2)
您无法在src
属性中编写JavaScript。要做你想做的事,试试这样的代码:
var img = new Image();
img.src = contextPath + "/images/pageSetup.gif";
document.getElementById('display').appendChild(img);
这里的目标;您要显示图像的位置是div或span,带有id显示。
使用HTML,您将不得不承担一些产生错误的额外流量,因此您可以替换图片,或者您可以通过Google的方式发送一些流量。 请不要使用此:
<img src='notAnImage' onerror='this.src= contextPath + "/images/pageSetup.gif" '>
请勿使用此功能。
答案 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;
}
};