2014-09-10 114 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