32

尝试使用 Spark Web 框架提供静态文件时,我应该将文件放在哪里?

我无法在网上找到任何东西——我开始怀疑我对 Eclipse 和 Java 项目的类路径、相对路径等一无所知。

这一段关于 Spark 中的静态文件指的是/public,但我不知道那会在哪里。使用 windows,Eclipse Luna 和我的项目被转换为使用 Maven。

我已经尝试查看 GitHub 上的代码,但我试图找到它有点超出我的深度。

4

4 回答 4

54

首先,您必须告诉 Spark 在哪里搜索静态文件,如下所示:

Spark.staticFiles.location("/public");

在 2.5 之前的 Spark 版本中,您应该使用:

Spark.staticFileLocation("/public");

然后您的项目应该public在资源文件夹下有一个文件夹,如下所示

/src/main/resources/public/style.css

例如,我在style.css那里添加了一个文件,因此您应该像这样访问它:

http://localhost:4567/style.css


如果要提供非类路径文件夹,则应使用

Spark.staticFiles.externalLocation("/path/to/dir");

在 2.5 之前的 Spark 版本中,您应该使用:

Spark.externalStaticFileLocation("/path/to/dir");
于 2015-01-30T00:58:23.077 回答
3

我将样式表放在静态内容下方,如下所示:

staticFileLocation( "/web" );
/web/
  |-- index.html
  +-- styles/
        +
        +--- default.css

和 index.html

... <link href="styles/default.css" rel="stylesheet"   type="text/css" />

我还有其他生成的 HTML 页面,就像 freemarker 一样。他们只是收集路径:

  • /styles/default.css,或
  • 本地主机:8081/styles/default.css

显示索引获取它的 CSS 方式。

来源:https ://groups.google.com/d/msg/sparkjava/5vMuK_5GEBU/vh_jHra75u0J

于 2015-02-08T02:11:16.220 回答
2
  1. 在 Eclipse 上右键单击您的项目,选择 create New -> Package。给新包起个名字等。

  2. 把你的静态资源放在那个包下,这样我们就可以确定它们在你的类路径下。

  3. 在您的 Main 类colde 中,调用 staticFileLocation("yourpackagename/");
于 2015-03-27T15:08:47.437 回答
1
  1. 将您的公共目录放入src/main/resources
  2. 替换Spark.staticFileLocation("/public");Spark.staticFileLocation("public");
于 2017-08-12T15:55:59.190 回答