Java Web应用程序.定位图像的问题



我正在制作一个java web应用程序,我希望它显示一个图像。但是,它找不到我的图像。

我在/src/main/resources/images中创建了一个文件夹

同样,在.jsp文件中,我尝试了以下句子。

 <img src="/src/main/resources/images/Head.png"> </img>
 <img src="< c:url value='/src/main/resources/images/Head.png'/>"> </img>

我做错什么了吗?

感谢编辑:

mi .jsp文件路径为/src/main/webapp/WEB-INF/jsp/welcome.jsp

您可以在https://github.com/Santi-7/hello

中找到web应用程序代码。

你的应用程序是一个Spring Boot应用程序。我认为你也可以尝试使用Spring Boot提供的设施来服务静态内容。无论如何,你现在正在做,因为你正在使用webjars css和js库!!与你正在使用的技术保持一致。

.war文件的结构如下:

/
    /WEB-INF
        /lib
        /classes
    /META-INF
现在,您的应用程序具有以下结构(我假设,给定文件夹结构,您正在使用Maven)
/
    /src
        /main
            /java
            /resources
            /webapp

现在,Maven war插件会在编译时将类路径中的所有内容复制到/WEB-INF/classes中——默认情况下是/src/main/java/src/main/resources

问题的关键是 /WEB-INF/META-INF下的任何内容都不能通过请求访问 -这是出于安全考虑,否则有人可以简单地下载/WEB-INF/web.xml

所以,为了添加一个可以被浏览器访问的资源,你需要把它放在/src/main/webapp中——这将成为应用程序的根目录。

如果你把Head.png放到/src/main/webapp/images中那么在JSP中你会使用:

<c:url value='/images/Head.png'/>

简而言之,您需要仔细阅读.war的目录结构是如何工作的,以及它与您的代码的关系。

图像的路径必须是相对于.jsp文件的路径。

由于图像的路径是:/src/main/resources/images/Head.png,而jsp文件的路径是:/src/main/webapp/WEB-INF/jsp/welcome.jsp,因此需要在图像标记中写入:

<img src="../../../resources/images/Head.png" />

../../../表示从jsp文件夹到main文件夹,resources/images/Head.png表示从main文件夹到图片的路径

谢谢大家,我能解决我的问题。

我所做的改变:

所以,为了添加一个可以被浏览器访问的资源,你需要把它放在/src/main/webapp中——这将成为应用程序的根目录。

现在,我的图像在/src/main/webapp/images .

图像的路径必须相对于.jsp文件的路径。

现在,我的.jsp文件的句子是

<img src="images/Head.png" />

编辑[1]:

我犯了一个错误。图像的路径是相对于/webapp类路径的!

最新更新