2014-09-10 112 views
0

我试图访问使用jetty.xml配置部署战争的服务器上的静态内容。我使用了ResourceHandler,它工作正常,但我无法再访问网站内容。我尝试添加一个DefaultHandler,但我仍然无法访问“/”上的内容。我是否需要为其他请求添加特定处理程序?Jetty.xml访问静态内容

这里是我的jetty.xml:

<?xml version="1.0"?> 
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd"> 

<Configure id="Server" class="org.eclipse.jetty.server.Server"> 

    <Set name="ThreadPool"> 
     <New class="org.eclipse.jetty.util.thread.QueuedThreadPool"> 
     <Set name="minThreads">10</Set> 
     <Set name="maxThreads">200</Set> 
     <Set name="detailedDump">false</Set> 
     </New> 
    </Set> 

    <New id="sslContextFactory" class="org.eclipse.jetty.http.ssl.SslContextFactory"> 
    <Set name="KeyStore"><Property name="jetty.home" default="." />//etc/mykeystore.keystore</Set> 
    <Set name="KeyStorePassword">xxxxxxx</Set> 
    <Set name="KeyManagerPassword">xxxxxxxx</Set> 
    </New> 

    <Call name="addConnector"> 
    <Arg> 
     <New class="org.eclipse.jetty.server.ssl.SslSelectChannelConnector"> 
     <Arg><Ref id="sslContextFactory" /></Arg> 
     <Set name="Port">443</Set> 
     <Set name="maxIdleTime">30000</Set> 
     <Set name="Acceptors">2</Set> 
     <Set name="AcceptQueueSize">100</Set> 
     </New> 
    </Arg> 
    </Call> 

    <Set name="handler"> 
     <New id="Handlers" class="org.eclipse.jetty.server.handler.HandlerCollection"> 
     <Set name="handlers"> 
     <Array type="org.eclipse.jetty.server.Handler"> 
      <Item> 
       <New class="org.eclipse.jetty.server.handler.ContextHandler"> 
        <Set name="contextPath">/img</Set> 
        <Set name="handler"> 
         <New class="org.eclipse.jetty.server.handler.ResourceHandler"> 
          <Set name="directoriesListed">false</Set> 
          <Set name="resourceBase">/home/img</Set> 
         </New> 
        </Set> 
       </New> 
      </Item> 
     </Array> 
     </Set> 
     </New> 
    </Set> 
</Configure> 

回答

0

随着码头9,只是做一个目录${jetty.base}/webapps/,把你的内容在那里。

例如,如果您创建

${jetty.base}/webapps/static/css/main.css 

然后将从/static/范围内提供服务,使得该内容下面的一个有效的访问。

http://localhost:8080/static/css/main.css 

这被称为静态资源部署,是Jetty默认部署配置中的默认部署技术的一部分。

您还可以使用上下文deployable xml在磁盘上的任意位置声明您想要的任意静态内容。

参见:https://www.eclipse.org/jetty/documentation/current/static-content-deployment.html