私は何年もの間これに対する答えを探していましたが、どこにも見つかりません。誰かが助けてくれることを本当に願っています
私の構造:
WebContent
- resources
- css
- style.css
- WEB-INF
- web.xml
template.html
web.xml
<servlet>
<servlet-name>RestletServlet</servlet-name>
<servlet-class>org.restlet.ext.servlet.ServerServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>RestletServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
アプリケーション.java
String ROOT_URI = "C:/projects/testsite/WebContent/"
try {
configuration.setDirectoryForTemplateLoading(new File(ROOT_URI));
configuration.setObjectWrapper(new BeansWrapper());
} catch (IOException e) {
e.printStackTrace();
}
router.attach("/resources", new Directory(getContext(), LocalReference.createFileReference(ROOT_URI)));
router.attach("/index", IndexResource.class);
URL: localhost:8080/testsite/index に移動すると、正しいデータが入力されたテンプレート ファイルが取得されます。ただし、CSS は読み込まれません。Eclipse コンソールで、restlet がフェッチしようとしていることがわかりますが、404 が返されます
127.0.0.1 8080 GET /testsite/resources/css/style.css - 404
上記のように、Directory
クラスを使用して css ディレクトリをロードしようとしていますが、効果がありません。もしかしてこれはダメ!?css が restlet を通過しない方法はありますか? ROOT_URI
絶対パスではなく相対パスにすればよかった。私の場所のパスを取得する簡単な方法はありますか?