2016-10-21 7 views
0

SpringBlock MVCで作業を開始しました。私の頭を傷つけて自分のフォルダを整理しようとしている。SpringブートMVC htmlファイルパスが動作しない

は、私は次のフォルダに私のindex.html、CSS、およびイメージファイルを持っている:

  • /resources/static
  • /resources/static/css
  • /resources/static/imagesそれぞれ。

すべて正常です。私は/resources/templates/greeting.htmlにHTMLファイルを持っており、コントローラクラスによって正しくアクセスされています。しかし、私はいくつかのサブフォルダ/resources/templates/management/*.htmlを作成しましたが、私の/resource/templates/greeting.htmlはフォルダをhrefできないため、404エラーが発生します。

/managementからファイルを取り出して/resourcesに入れると、それらはうまくアクセスされます。ここに私のindex.htmlコードは次のとおりです。

<!DOCTYPE HTML> 
<html xmlns:th="http://www.thymeleaf.org"> 
<head> 
    <title>AVI Administrator</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
    <link rel="stylesheet" href="\css\indexstyles.css" /> 
</head> 
<body> 
<div id="pagewrap"> 

    <div class="header"> 
     <img src="\images\avi.png" alt="AVI" style="width:90px;height:50px;" > 
     <h1> Edge Administrative Dashboard </h1> 
    </div> 

    <section id="content"> 
     <center> 
      <img src="\images\wrench_1024.png" alt="Administration" style="width:200px;height:200px;" > 
      <h2>Account Management</h2> 
     </center> 
     <br> 
     <a href="\management\addadministrator.html" style="text-decoration: none" >&gt;&nbsp;&nbsp; Add/Edit System Administrator Account<p/></a> 
     <a href="\management\addclient.html" style="text-decoration: none" >&gt;&nbsp;&nbsp; Add/Edit Tenant Client Account<p/></a> 
     <a href="\management\addtenant.html" style="text-decoration: none" >&gt;&nbsp;&nbsp; Add/Edit Tenant Account<p/></a> 
     <a href="\management\addtenantedgedevice.html" style="text-decoration: none" >&gt;&nbsp;&nbsp; Add/Edit Edge Device<p/></a> 
     <a href="\management\addtenantsubscription.html" style="text-decoration: none" >&gt;&nbsp;&nbsp; Add/Edit Tenant Subscription<p/></a> 
    </section> 

    <footer> 

    </footer> 
</div> 
</body> 
</html> 

誰もが何が起こっているかのアイデアを持っていますか?私は実行可能なJARを作成しており、WEB-INFのいくつかのファイル制限について読んでいます。 Spring起動時にすべてのHTMLファイルを/resourcesフォルダに入れる必要がありますか?

私はスプリングブートのMVC jarの問題に違反しているようです。ファイルを整理して整理するための良い方法はありますか?提言は大歓迎です。

+0

'/ resources/templates/management/*。html'の代わりに'/resources/template/management/*。html'のために404エラーが発生するかもしれませんか? 'template(s)'を打ち込むだけです。サブフォルダを持っていればコントローラの 'return"サブフォルダ/ pageName "; – DimaSan

+0

に入力できます。彼らは私がstackoverflowに入力したときの私の間違いでした。実際のソースは正しいです。 – skmansfield

答えて

0

:それに

変更。最初に多くの問題を引き起こしたのは、SpringブートMVCの使用と実行可能なJarの作成でした。あなたは「春ブーツスタータープロジェクト」2つのパスが作成され、デフォルトでは

resources 
    | 
    --> static 
    | 
    --> templates 

を作成すると、すべての静的なコンテンツを実行可能なjarファイルを使用した場合、 - CSSは、JS、フォントが - 静的なフォルダに配置されます。 index.htmlを使用すると、それも静的ファイルに格納されます。デフォルトでは、他のすべてのhtmlファイルがテンプレートフォルダに配置されます。これらのデフォルトの標準に従って、正常に動作します。本当に私に多くの労力を浪費させた問題は、実行可能な.jarを作成し、典型的なMVCファイル構造webapp - > WEB-INFを使用することでした。実行可能なjarはwebappファイル構造を無視します。もう一つの驚きは、実行可能ファイル.jarが作成されたときに、.jspがSpring起動MVCでうまく動作しないことです。これらの問題のほとんどすべては、WARデプロイメントによって排除されます。実行可能な.jarsを使用する場合、Springブートは、ビューページに対してthymeleafまたはhtmlを推奨します。

私が逃したかもしれない他のものは?

+0

私はあなたが近づいていると思います。 Springブートはさまざまなテンプレートエンジン(Freemarker、thymeleaf、Mustache、Groovy)をサポートしています。標準のWebコンテナに.warとしてデプロイする場合、.jspは正常に動作します。私があなたのコードから気づいたのは、HTMLファイルを静的に参照しているということです。 hrefsはコントローラ要求マッピングを指すべきです。あなたのviews/htmlファイル(MVC)を呼び出すはずのコントローラです。 – Olantobi

+0

Olantobi ...静的なhrefを指摘してくれてありがとう。私はhrefsを修正し、.jspの代わりにコントローラ要求のマッピングを指しています。私は春のブートmvcは正常に動作している。最終的な問題は、実行可能なジャーででした。私はちょうどgradleビルドで実行可能な.warを作成し、すべてうまくいきました。コマンドラインで.warを次のように実行します。 java -jar myjarname.war – skmansfield

0

参考になりません。私は最終的に問題を発見読書をたくさんした後[OK]を

<a href="management/addadministrator.html" style="text-decoration: none" >&gt;&nbsp;&nbsp; Add/Edit System Administrator Account<p/></a> 
<a href="management/addclient.html" style="text-decoration: none" >&gt;&nbsp;&nbsp; Add/Edit Tenant Client Account<p/></a> 
+0

試しましたが、動作しませんでした。私はまたと – skmansfield

+0

を試してみました。私はspring-boot MVCを使っています。ファイル構成は、ほとんどのWebアプリケーションとは少し異なります。現在動作していないファイル構成は/resources/templates/management/addclient.htmlです。私は管理フォルダを静的フォルダに移動し、それが機能しました。作業組織は/resources/static/management/addclient.htmlです。私はスプリングブートのMVCは静的なファイルの静的なコンテンツを望んでいるとコントローラのテンプレートフォルダ内のファイルを参照してください。これは理にかなっていますか?他の意見はありますか? – skmansfield

関連する問題