刷新SparkJava提供的静态文件
我正在用Spark Java做一个项目。在服务器端,创建了一些映像,我希望它们在客户端可用。由于我有一个静态内容目录,在服务器端创建映像后,我将它放在该目录中。但是,除非重新启动服务器,否则此文件不可用。我想一定有办法在运行时刷新Spark Java的静态目录文件,以便满足运行时创建的映像的请求。对吧?刷新SparkJava提供的静态文件,java,server,static-files,spark-java,Java,Server,Static Files,Spark Java,我正在用Spark Java做一个项目。在服务器端,创建了一些映像,我希望它们在客户端可用。由于我有一个静态内容目录,在服务器端创建映像后,我将它放在该目录中。但是,除非重新启动服务器,否则此文件不可用。我想一定有办法在运行时刷新Spark Java的静态目录文件,以便满足运行时创建的映像的请求。对吧? 谢谢 我通过将png编码为Base 64并将其作为响应发送给客户端解决了这个问题。 如果您使用staticFiles.location(…),这意味着您将静态文件保留在类路径中,则在构建应用程序
谢谢 我通过将png编码为Base 64并将其作为响应发送给客户端解决了这个问题。 如果您使用
staticFiles.location(…)
,这意味着您将静态文件保留在类路径中,则在构建应用程序时,静态资源会复制到目标文件夹中。这意味着您必须创建/构建项目以刷新静态文件。解决方法是告诉Spark从src目录的绝对路径读取静态文件
因此,请改用
staticFiles.externalLocation()
。这只是一个愚蠢的问题:您确定这不是由于浏览器的缓存造成的吗?我不认为这可能是因为我尝试使用其他浏览器(即使在匿名模式下)访问图像生成的文件,但我一直无法访问。我可以做哪些测试来排除浏览器的缓存问题?如果这是缓存的问题,如何解决它而不会对用户不友好?谢谢如果您正在使用Docker:staticFiles.externalLocation(“/static”)
,并将卷从工作副本映射到该目录:Docker run-v“$PWD/src/main/resources/static:/static”…