首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >星火Java在虚拟文件位置提供静态文件

星火Java在虚拟文件位置提供静态文件
EN

Stack Overflow用户
提问于 2021-02-06 00:33:02
回答 1查看 333关注 0票数 5

Express能够在不同的虚拟位置提供静态文件:

代码语言:javascript
运行
复制
app.use('/static', express.static('public'))

但是,我正在使用Spark作为服务器的Java。我知道如何提供静态文件,但是Spark甚至可以在虚拟位置提供静态文件吗?如果可能的话,怎么做?我已经搜索了一段时间,但我找到的所有教程都只是告诉我如何为静态文件服务,而不是在虚拟位置提供静态文件。

编辑:对“虚拟位置”的解释:让我们假设这是当前的dir:

代码语言:javascript
运行
复制
public/
|-----index.html
|-----style.css
|-----etc...

然后,我们可以使用http://localhost:8080/public/index.html获得一个网页。

但是,我想要更改它,这样我就可以用http://localhost:8080/somedir/virtual/pathindex.html获得网页。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-06 02:51:53

当使用Spark时,Spark类包含staticFiles静态导入,它提供了一组静态文件实用程序方法

其中之一是externalLocation(String externalFolder)

因此,例如,您可以定义Spark应用程序,并且可以在init()方法中定义外部位置:

代码语言:javascript
运行
复制
Spark.staticFiles.externalLocation("[your external path here]");

此位置可以位于应用程序类路径之外。

这是记录在案的这里

关于“虚拟”位置:“虚拟”一词指的是一个目录,它只是一个Linux风格的符号链接或指向文件系统上其他位置的指针。只要您的应用程序拥有访问符号链接/指针目标的权限,它就会正常工作。

(我还没有尝试过Windows快捷方式-这些方法可能行不通。)

请注意:如果您将外部位置定义为:

代码语言:javascript
运行
复制
staticFiles.externalLocation("public");

然后,您将可以在以下位置访问而不是的资源:

代码语言:javascript
运行
复制
http://localhost:8080/public/index.html

相反,您需要使用:

代码语言:javascript
运行
复制
http://localhost:8080/index.html

在这种情况下,public是起点。如果要在URL中显式地包含public,则需要添加一个名为public的子目录

代码语言:javascript
运行
复制
public/
|----public/
     |-----index.html
     |-----style.css
     |-----etc...

现在,这将是可行的,因为你在你的问题中:

代码语言:javascript
运行
复制
http://localhost:8080/public/index.html
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66072420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档