在发布这些问题之前,我已经环顾了很多(相信我:),我仍然感到困惑。这是场景:
使用Restlet 2.0在glassfish v3上托管J2EE Web应用程序freemarker模板文件位于/ WEB-INF文件夹中。模板链接到jQuery / javascript文件,一些静态图像和使用相对URL的样式表。
由于将它们存储在/ WEB-INF中并不是一个好的做法(如网上许多地方所述),我将文件移动到WebContent文件夹
WebContent:
+--Images
-.jpg, .gif files
+--Styles
-myStyle.css
+--Scripts
+--jQLabel
+--mColorPicker
+--Images
+--javascripts
-.js files
我在freemarker template / html中将它们称为:
<link rel="stylesheet" type="text/css" href="${baseRef}/Styles/myStyle.css" />
其中${baseRef}
是网站的根参考。该站点部署在/ Winbook。因此,css的localhost上的URL如下所示:
http://localhost:8080/Winbook/Styles/winbookwall.css&lt; - 使用GET检索
问题(S):
对于上述每个资源,我得到一个404 :(我不确定这是否真的是应该存储css,图像或脚本以及WebContent文件夹是否适合它被存储。
问题(S):
我完全糊涂了!已经有一段时间了,因为我必须编写一个完整的端到端Web应用程序,这通常由“其他人”处理:)
谢谢!
答案 0 :(得分:1)
我可能迟到了这个问题的答案,但现在就是这样。正如我所提到的,Restlet拦截了URL,您必须使用Directory类返回静态内容 - 使用路径“war:///”或“war:/// images /”等为每个文件夹进行初始化
它无法正常工作的原因是Restlet的路由问题 - 目录文件夹是URL的代码顺序中的“最后”。使用Template.MODE_STARTS_WITH创建目录,其他(即Restlet或其他资源)是Template.MODE_EQUALS
您应该手动更改路由的顺序,或者在路由时将其推送到URI的顶部。
希望能帮助任何人绊倒同样的问题。
以下是杰罗姆回答的相关问题:Restlet Routing Nightmare
答案 1 :(得分:0)