Spark Webフレームワークで静的ファイルを提供しようとする場合、ファイルはどこに配置しますか?
私はオンラインで何かを見つけることができませんでした-EclipseとJavaプロジェクトのクラスパス、相対パスなどについて何も理解していないのではないかと疑っています。
この段落 Sparkは/public
を参照していますが、それがどこにあるのかわかりません。Windows、Eclipse Lunaおよび私のプロジェクトはMavenを使用するように変換されます。
GitHubでコードを調べてみましたが、それを見つけようとして少し深みがありません。
まず、Sparkこのような静的ファイルの検索場所を指定する必要があります。
Spark.staticFiles.location("/public");
Spark 2.5より前のバージョンでは、以下を使用する必要があります。
Spark.staticFileLocation("/public");
次に、プロジェクトには次のようなresourcesフォルダーの下にpublic
フォルダーが必要です。
/src/main/resources/public/style.css
たとえば、style.css
ファイルがあるため、次のようにアクセスする必要があります。
http://localhost:4567/style.css
クラスパス以外のフォルダーを提供する場合は、使用する必要があります
Spark.staticFiles.externalLocation("/path/to/dir");
Spark 2.5より前のバージョンでは、次を使用する必要があります。
Spark.externalStaticFileLocation("/path/to/dir");
次のように、静的コンテンツの下にスタイルシートを配置します。
staticFileLocation( "/web" );
/web/
|-- index.html
+-- styles/
+
+--- default.css
そして、index.html
... <link href="styles/default.css" rel="stylesheet" type="text/css" />
また、freemarkerと同様に生成された他のHTMLページもあります。彼らはただパスを収集します:
インデックスが取得するCSSの方法を示します。
ソース: https://groups.google.com/d/msg/sparkjava/5vMuK_5GEBU/vh_jHra75u0J
Eclipseでプロジェクトを右クリックし、[新規作成]-> [パッケージ]を選択します。新しいパッケージに名前を付けるなど。
静的リソースをそのパッケージの下に配置して、クラスパスの下にあることを確認できます。
src/main/resources
_に配置しますSpark.staticFileLocation("/public");
をSpark.staticFileLocation("public");
に置き換えます