从Java webapp子目录提供静态文件

时间:2017-04-05 15:23:58

标签: java servlets resteasy web.xml

我有一个Java webapp(RESTEasy)组织如下:

tinymce.init({
      selector: '#campaign-description',
      menubar:false,
      height: 500,
      paste_as_text: true,
      fontsize_formats: '14pt 18pt 24pt 36pt',
      plugins: [
        'advlist autolink lists link image charmap print preview anchor save',
        'searchreplace visualblocks code fullscreen',
        'insertdatetime media table contextmenu paste code'
      ],
      toolbar: 'undo redo | fontselect | fontsizeselect | sizeselect | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image media | responsivefilemanager | code',
      content_css: [
        '//fast.fonts.net/cssapi/e6dc9b99-64fe-4292-ad98-6974f93cd2a2.css'
      ],
      file_picker_types: 'image',
        file_browser_callback: function(field_name, url, type, win) {
            if(type=='image') $('#file_name').click(); $('#field_name').val(field_name);
        }
    });

公共文件夹由我的构建链填充静态文件(index.html,编译的js,css和资源)。构建WAR归档文件时,我可以访问src/main |- java/ |- webapp/ |- WEB-INF/ |- web.xml |- public/ |- <compiled static files> 下的静态文件。

有没有办法直接从root(/public/index.html)提供我的静态文件?我知道我可以直接将它们放在我的/index.html文件夹中,但是由于我的构建链和项目结构,我想避免这种情况。

1 个答案:

答案 0 :(得分:1)

通常,容器允许您指定文档根目录。这意味着您可以随时随地使用Web应用程序。但是,你不能拥有你想要的东西。因为,它不是Web应用程序结构。

某些容器还允许您指定文档库。与Tomcat for Ex一样,您可以在server.xml中指定它

<Context docBase="/path/to/files" path="/files" />

一种解决方法是添加一个过滤器,该过滤器将预先公开&#34; public&#34;所有的网址。