2016-08-13 40 views
2

我從一個碼頭工人集裝箱生成以下/啓動如何使用我的jar外部的彈簧引導來提供靜態內容?

Step 13 : ENV WEBROOT /package/dist 
---> Running in 0d0d3651fa08 
---> e80c20af18ba 
Removing intermediate container 0d0d3651fa08 
Step 14 : USER $SPRING_APPLICATION_NAME 
---> Running in 7fe20b631fee 
---> 37435f78675b 
Removing intermediate container 7fe20b631fee 
Step 15 : CMD ls -l $WEBROOT && java -Djava.security.egd=file:/dev/urandom -Dlogging.level.org.springframework=DEBUG -Dspring.resources.static-locations=file:$WEBROOT/** -jar $JAR 
---> Running in 9b71fb7bde61 
---> 82e77cfde02a 
Removing intermediate container 9b71fb7bde61 
Successfully built 82e77cfde02a 
total 1788 
-rw-r--r-- 1 root  root  152796 Aug 13 06:46 1dc35d25e61d819a9c357074014867ab.ttf 
-rw-r--r-- 1 root  root   76518 Aug 13 06:46 25a32416abee198dd821b0b17a198a8f.eot 
-rw-r--r-- 1 root  root   18028 Aug 13 06:46 448c34a56d699c29117adc64c43affeb.woff2 
-rw-r--r-- 1 root  root  108738 Aug 13 06:46 89889688147bd7575d6327160d64e760.svg 
-rw-r--r-- 1 root  root  170605 Aug 13 06:46 app.ff81c2c4df5a052cee7f.bundle.js 
-rw-r--r-- 1 root  root   87 Aug 13 06:46 app.ff81c2c4df5a052cee7f.bundle.map 
-rw-r--r-- 1 root  root  129946 Aug 13 06:46 aurelia-bootstrap.920ea8ba3d3ae900df6b.bundle.js 
-rw-r--r-- 1 root  root  307763 Aug 13 06:46 aurelia.042f8d07b45053bfe6a6.bundle.js 
-rw-r--r-- 1 root  root   90412 Aug 13 06:46 c8ddf1e5e5bf3682bc7bebf30f394148.woff 
-rw-r--r-- 1 root  root  391622 Aug 13 06:46 d7c639084f684d66a1bc66855d193ed8.svg 
-rw-r--r-- 1 root  root   45404 Aug 13 06:46 e18bbf611f2a2e43afc071aa2f4e1512.ttf 
-rw-r--r-- 1 root  root   71896 Aug 13 06:46 e6cf7c6ec7c2d6f670ae9d762604cb0b.woff2 
-rw-r--r-- 1 root  root   20127 Aug 13 06:46 f4769f9bdb7466be65088239c12046d1.eot 
-rw-r--r-- 1 root  root   23424 Aug 13 06:46 fa2772327f55d8198301fdb8bcfc8158.woff 
-rw-r--r-- 1 root  root   2249 Aug 13 06:46 favicon.ico 
-rw-r--r-- 1 root  root   568 Aug 13 06:46 index.html 
-rw-r--r-- 1 root  root  183950 Aug 13 06:46 styles.css 

容器開始罰款,這一切,得到了很長的調試日誌的末尾

2016-08-13 08:09:17.006 DEBUG 8 --- [   main] o.s.w.s.resource.ResourceUrlProvider  : Found resource handler mapping: URL pattern="/**/favicon.ico", locations=[URL [file:/package/dist/**], class path resource []], resolvers=[[email protected]df00a0] 
2016-08-13 08:09:17.006 DEBUG 8 --- [   main] o.s.w.s.resource.ResourceUrlProvider  : Found resource handler mapping: URL pattern="/webjars/**", locations=[class path resource [META-INF/resources/webjars/]], resolvers=[[email protected]15107f] 
2016-08-13 08:09:17.006 DEBUG 8 --- [   main] o.s.w.s.resource.ResourceUrlProvider  : Found resource handler mapping: URL pattern="/**", locations=[URL [file:/package/dist/**]], resolvers=[[email protected]4c50bc] 

所以它看起來像它的識別路徑,我們知道里面有東西,因爲我列出了它。我打本地主機:8080(這是正確的服務器)

2016-08-13 08:15:16.448 DEBUG 8 --- [nio-8080-exec-2] o.s.b.w.f.OrderedRequestContextFilter : Bound request context to thread: org.springframework.session.w[email protected]4a8af076 
2016-08-13 08:15:16.448 DEBUG 8 --- [nio-8080-exec-2] o.s.s.web.util.matcher.OrRequestMatcher : Trying to match using Ant [pattern='/css/**'] 
2016-08-13 08:15:16.448 DEBUG 8 --- [nio-8080-exec-2] o.s.s.w.u.matcher.AntPathRequestMatcher : Checking match of request : '/'; against '/css/**' 
2016-08-13 08:15:16.448 DEBUG 8 --- [nio-8080-exec-2] o.s.s.web.util.matcher.OrRequestMatcher : Trying to match using Ant [pattern='/js/**'] 
2016-08-13 08:15:16.448 DEBUG 8 --- [nio-8080-exec-2] o.s.s.w.u.matcher.AntPathRequestMatcher : Checking match of request : '/'; against '/js/**' 
2016-08-13 08:15:16.448 DEBUG 8 --- [nio-8080-exec-2] o.s.s.web.util.matcher.OrRequestMatcher : Trying to match using Ant [pattern='/images/**'] 
2016-08-13 08:15:16.448 DEBUG 8 --- [nio-8080-exec-2] o.s.s.w.u.matcher.AntPathRequestMatcher : Checking match of request : '/'; against '/images/**' 
2016-08-13 08:15:16.448 DEBUG 8 --- [nio-8080-exec-2] o.s.s.web.util.matcher.OrRequestMatcher : Trying to match using Ant [pattern='/webjars/**'] 
2016-08-13 08:15:16.448 DEBUG 8 --- [nio-8080-exec-2] o.s.s.w.u.matcher.AntPathRequestMatcher : Checking match of request : '/'; against '/webjars/**' 
2016-08-13 08:15:16.448 DEBUG 8 --- [nio-8080-exec-2] o.s.s.web.util.matcher.OrRequestMatcher : Trying to match using Ant [pattern='/**/favicon.ico'] 
2016-08-13 08:15:16.448 DEBUG 8 --- [nio-8080-exec-2] o.s.s.w.u.matcher.AntPathRequestMatcher : Checking match of request : '/'; against '/**/favicon.ico' 
2016-08-13 08:15:16.448 DEBUG 8 --- [nio-8080-exec-2] o.s.s.web.util.matcher.OrRequestMatcher : Trying to match using Ant [pattern='/error'] 
2016-08-13 08:15:16.448 DEBUG 8 --- [nio-8080-exec-2] o.s.s.w.u.matcher.AntPathRequestMatcher : Checking match of request : '/'; against '/error' 
2016-08-13 08:15:16.448 DEBUG 8 --- [nio-8080-exec-2] o.s.s.web.util.matcher.OrRequestMatcher : No matches found 
2016-08-13 08:15:16.448 DEBUG 8 --- [nio-8080-exec-2] o.s.s.w.u.matcher.AntPathRequestMatcher : Checking match of request : '/'; against '/' 
2016-08-13 08:15:16.448 DEBUG 8 --- [nio-8080-exec-2] o.s.security.web.FilterChainProxy  :/has an empty filter list 
2016-08-13 08:15:16.449 DEBUG 8 --- [nio-8080-exec-2] o.s.web.servlet.DispatcherServlet  : DispatcherServlet with name 'dispatcherServlet' processing GET request for [/] 
2016-08-13 08:15:16.450 DEBUG 8 --- [nio-8080-exec-2] o.s.b.a.e.mvc.EndpointHandlerMapping  : Looking up handler method for path/
2016-08-13 08:15:16.453 DEBUG 8 --- [nio-8080-exec-2] o.s.b.a.e.mvc.EndpointHandlerMapping  : Did not find handler method for [/] 
2016-08-13 08:15:16.453 DEBUG 8 --- [nio-8080-exec-2] s.w.s.m.m.a.RequestMappingHandlerMapping : Looking up handler method for path/
2016-08-13 08:15:16.454 DEBUG 8 --- [nio-8080-exec-2] s.w.s.m.m.a.RequestMappingHandlerMapping : Did not find handler method for [/] 
2016-08-13 08:15:16.454 DEBUG 8 --- [nio-8080-exec-2] o.s.w.s.handler.SimpleUrlHandlerMapping : Matching patterns for request [/] are [/**] 
2016-08-13 08:15:16.454 DEBUG 8 --- [nio-8080-exec-2] o.s.w.s.handler.SimpleUrlHandlerMapping : URI Template variables for request [/] are {} 
2016-08-13 08:15:16.454 DEBUG 8 --- [nio-8080-exec-2] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapping [/] to HandlerExecutionChain with handler [ResourceHttpRequestHandler [locations=[URL [file:/package/dist/**]], resolvers=[[email protected]4c50bc]]] and 1 interceptor 
2016-08-13 08:15:16.454 DEBUG 8 --- [nio-8080-exec-2] o.s.web.servlet.DispatcherServlet  : Last-Modified value for [/] is: -1 
2016-08-13 08:15:16.454 DEBUG 8 --- [nio-8080-exec-2] o.s.web.servlet.DispatcherServlet  : Null ModelAndView returned to DispatcherServlet with name 'dispatcherServlet': assuming HandlerAdapter completed request handling 
2016-08-13 08:15:16.454 DEBUG 8 --- [nio-8080-exec-2] o.s.web.servlet.DispatcherServlet  : Successfully completed request 
2016-08-13 08:15:16.454 DEBUG 8 --- [nio-8080-exec-2] o.s.b.w.f.OrderedRequestContextFilter : Cleared thread-bound request context: org.springframework.session.w[email protected]4a8af076 
2016-08-13 08:15:16.455 DEBUG 8 --- [nio-8080-exec-2] o.s.web.servlet.DispatcherServlet  : DispatcherServlet with name 'dispatcherServlet' processing GET request for [/error] 
2016-08-13 08:15:16.455 DEBUG 8 --- [nio-8080-exec-2] o.s.b.a.e.mvc.EndpointHandlerMapping  : Looking up handler method for path /error 
2016-08-13 08:15:16.456 DEBUG 8 --- [nio-8080-exec-2] o.s.b.a.e.mvc.EndpointHandlerMapping  : Did not find handler method for [/error] 
2016-08-13 08:15:16.456 DEBUG 8 --- [nio-8080-exec-2] s.w.s.m.m.a.RequestMappingHandlerMapping : Looking up handler method for path /error 
2016-08-13 08:15:16.456 DEBUG 8 --- [nio-8080-exec-2] s.w.s.m.m.a.RequestMappingHandlerMapping : Returning handler method [public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)] 
2016-08-13 08:15:16.456 DEBUG 8 --- [nio-8080-exec-2] o.s.b.f.s.DefaultListableBeanFactory  : Returning cached instance of singleton bean 'basicErrorController' 
2016-08-13 08:15:16.456 DEBUG 8 --- [nio-8080-exec-2] o.s.web.servlet.DispatcherServlet  : Last-Modified value for [/error] is: -1 
2016-08-13 08:15:16.457 DEBUG 8 --- [nio-8080-exec-2] o.s.w.s.v.ContentNegotiatingViewResolver : Requested media types are [text/html, text/html;q=0.8] based on Accept header types and producible media types [text/html]) 
2016-08-13 08:15:16.457 DEBUG 8 --- [nio-8080-exec-2] o.s.b.f.s.DefaultListableBeanFactory  : Returning cached instance of singleton bean 'error' 
2016-08-13 08:15:16.457 DEBUG 8 --- [nio-8080-exec-2] o.s.w.servlet.view.BeanNameViewResolver : No matching bean found for view name 'error.html' 
2016-08-13 08:15:16.457 DEBUG 8 --- [nio-8080-exec-2] o.s.w.s.v.ContentNegotiatingViewResolver : Returning [org.springfram[email protected]316bcf94] based on requested media type 'text/html' 
2016-08-13 08:15:16.457 DEBUG 8 --- [nio-8080-exec-2] o.s.web.servlet.DispatcherServlet  : Rendering view [org.springfram[email protected]316bcf94] in DispatcherServlet with name 'dispatcherServlet' 
2016-08-13 08:15:16.457 DEBUG 8 --- [nio-8080-exec-2] 
o.s.web.servlet.DispatcherServlet  : Successfully completed request 

困惑,爲什麼我不看的index.html是生活在/包/測距請求時,/?我得到了一個404。與IO平臺雅典RC1包裝

春季啓動(1.4.0)版本

我怎麼能爲我的靜態內容是外部罐子?

回答

1

有很多方法:

1.-靜態內容可以通過像Apache或nginx的反向代理提供服務。

2:靜態內容可以由Spring啓動提供服務,一個例子:

@SpringBootApplication 
@EnableAutoConfiguration 
@ComponentScan("com.foo") 
public class FooApplication extends WebMvcConfigurerAdapter { 

    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 
     registry.addResourceHandler("/**.html").addResourceLocations("file:path/to/your/static/html"); 
     registry.addResourceHandler("/css/**").addResourceLocations("file:path/to/your/static/css"); 
    } 
+0

備註:我使用cloudfront,它實際上是一個反向代理,但我需要一個原始服務器來承載它。添加另一個進程是一個壞主意(imho)和其他http://techblog.netflix.com/2015/07/tuning-tomcat-for-high-throughput-fail.html。現在我不是netflix,但另一臺服務器增加了延遲,cpu爭用,內存成本,維護成本和安全漏洞風險。 – xenoterracide

+0

不幸的是,我也試過這個,它不工作,我得到的都是404s – xenoterracide

+0

似乎問題的一部分是它不希望將'index.html'作爲'/'或''''或隨你 – xenoterracide

0

嘗試從spring.resources.static-locations參數中刪除**,但仍以/結束。 PathResourceResolver不理解**

-Dspring.resources.static-locations=file:$WEBROOT/ 
相關問題