2016-11-12 8 views
0

私は春のブートとthymeleafで小さなウェブサイトを開発しました。これは、webjars経由でブートストラップとjqueryを使用します。ローカルで実行すると、すべて正常ですし、jsとcssファイルが正しく配信されます。nginxでのTomcatのバネ起動Webアプリケーションへのリダイレクト

私のサーバーに展開しようとすると、状況が悪くなります。私はデフォルトのtomcat8を実行しているが、それはnginxにもプロキシされている。

htmlファイルのサイトコンテンツは正しく配信されますが、Webjarsが見つかりません。

私application.propertiesは

/example 

Webアプリケーションは、/例として、Tomcatに配備されているように見えます。

のindex.html内のスクリプトのパス:

<script src="https://cdn.jsdelivr.net/jquery/3.1.1/jquery.min.js" th:src="@{/webjars/jquery/3.1.1/jquery.min.js}"></script> 
<script src="https://cdn.jsdelivr.net/bootstrap/3.3.7/js/bootstrap.min.js" th:src="@{/webjars/bootstrap/3.3.7/js/bootstrap.min.js}"></script> 

私はとにかく、私はそれらについていくつかに知っているので、CDNを使用したいが、していないにもかかわらず。

クロムデベロッパーツールでのエラーメッセージは、次のとおりです。

404 GET https://example.de/example/webjars/bootstrap/3.3.7/css/bootstrap.min.css 
404 GET https://example.de/example/webjars/jquery/3.1.1/jquery.min.js 
404 GET https://example.de/example/webjars/bootstrap/3.3.7/js/bootstrap.min.js 

nginxの構成:

server { 
     listen 80; 

     server_name example.de www.example.de; 
     return 301 https://$server_name$request_uri; 
} 

server { 
     listen 443 ssl; 

     server_name  example.de www.example.de; 
     root   /var/lib/tomcat8/webapps/example; 
     ... 

     location/{ 
       proxy_pass http://127.0.0.1:8080/example/; 
     } 
} 

私も

rewrite ^/collectd(/.*)$ $1 break; 

のようなものを試してみましたが、それはどちらも助けません。

マイポンポン:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 

<groupId>de.example</groupId> 
<artifactId>example-website</artifactId> 
<version>1.0</version> 
<packaging>war</packaging> 

<name>example-website</name> 
<description>example website</description> 

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.4.1.RELEASE</version> 
    <relativePath/> <!-- lookup parent from repository --> 
</parent> 

<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
    <java.version>1.8</java.version> 
    <tomcat.version>8.0.32</tomcat.version> 
</properties> 

<dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-thymeleaf</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-tomcat</artifactId> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.tomcat</groupId> 
     <artifactId>tomcat-juli</artifactId> 
     <version>${tomcat.version}</version> 
    </dependency> 


    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-test</artifactId> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.webjars</groupId> 
     <artifactId>bootstrap</artifactId> 
     <version>3.3.7</version> 
    </dependency> 
     <dependency> 
      <groupId>org.webjars</groupId> 
      <artifactId>jquery</artifactId> 
      <version>3.1.1</version> 
     </dependency> 
    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

誰もが、私はそれが実際にWebアプリケーションフォルダにリダイレクトnginxの設定に追加する必要が何を教えてもらえますか?

お時間をいただきありがとうございました。

答えて

0

を、問題が修正される可能性がnginxのサイト(場所)の構成に不足している書き換えディレクティブを追加します。

欠落行だった:

rewrite ^/example(.*)$ $1 last; 
0

次のようにご使用の構成にリソースハンドラを追加してください:

@Override 
public void addResourceHandlers(ResourceHandlerRegistry registry) { 
    if (!registry.hasMappingForPattern("/webjars/**")) { 
     registry.addResourceHandler("/webjars/**").addResourceLocations(
       "classpath:/META-INF/resources/webjars/"); 
    } 
    if (!registry.hasMappingForPattern("/**")) { 
     registry.addResourceHandler("/**").addResourceLocations(
       RESOURCE_LOCATIONS); 
    } 
} 
+0

私の知る限り、春ブーツは自分ResourceHandlerをもたらし、この手順は必要ありません – Hoall

関連する問題