我从REST Web服务返回text / html(MediaType.TEXT_HTML),我想在浏览器中显示。
从网络服务方法= <html>
<body background=\"WEB-INF\\DSCN0651.JPG\">
<h1>Hello World!!!</h1><a href="http://www.w3schools.com">Visit W3Schools.com!</a>
<audio autoplay><source src=\"WEB-INF\\Coolest_Sms_All_Time.mp3\" type="audio/mpeg"</audio>
</body></html>
DSCN0651.JPG
未在浏览器中呈现虽然我只能看到Hello World!!!
并链接www.w3schools.com
!在REST调用后在浏览器中
我检查了部署区域,图像和mp3都在WEB-INF文件夹下正常部署 我正在使用IE / chrome浏览器调用我的WebService get方法。
请让我知道我做错了什么。
答案 0 :(得分:0)
要链接图像或音频(或任何资源),您需要通过向服务器询问该资源来提供客户端浏览器可以理解的相对URL。如果您在网址http://example.com/foo/bar
上有如上所述的网页,则浏览器会尝试查找http://example.com/foo/bar/WEB-INF\DSCN0651.JPG
,但该网址无效。我建议您通过自己尝试使用真实网址,以及使用开发人员工具查看浏览器对您网页的处理方式来检查。
该网址无效,至少因为它使用反斜杠\
而不是正斜杠/
。 URL中的错误。
实际上,您展示的内容使用的是\"
和\\
,但只有当您将它们作为字符串嵌入源代码中时才能显示,分别代表"
和{{1 }}。您可能希望检查输出以确保正确。
此外,该URL包含WEB-INF。我假设您正在使用Java应用程序服务器。但是,WEB-INF文件夹的内容由Java应用程序服务器专门处理 - 事实上,resources there are not accessible to the public!所以你应该把它们移到别处并更新路径(正确的地方取决于你正在做什么)。可能在WEB-INF之外移动它们,并且更新URL已经有效。