问题很简单,但是我花了两天时间来部署我的应用程序,到目前为止还没有。
我的样式只有一个CSS文件,当我执行jar时,没有找到CSS(404)或者jar不会打包。
如下所述:Spring Boot Executable jar structure "如果您的应用程序将打包为jar,请不要使用src/main/webapp文件夹"和"您应该将静态资源放在src/main/resources中"。
把CSS放在这里:src/main/resources/styles.css
在Vaadin文档中(非常注重如何打包......),我这样导入CSS:
@StyleSheet("styles.css")
来源:https://vaadin.com/docs/v11/flow/importing-dependencies/tutorial-include-css.html
然后打包我的项目:
mvn clean package -Pproduction
我得到这个错误:
[错误]无法在项目importparcoursup上执行目标com. vaadin:vaadin-maven-plugin:11.0.0:打包用于生产(默认):目标com的执行默认值。vaadin:vaadin-maven-plugin:11.0.0:打包生产失败:无法解析以"styles.css"结尾的导入:没有找到相应的文件"C:\工作空间\lasteclipeandjava10\parcoursup\target\frontend\styles.css"。
[错误]请仔细检查相应的导入并验证以下内容:
[错误]* 导入字符串正确
[错误]* 导入的文件位于项目的"frontend://"目录中、项目WebJar依赖项之一或常规jar依赖项之一中
[错误]* 如果该文件存在于某个常规jar依赖项中,则它应位于jar的META-INF/resources/frontend
目录中
有人能提供一个简单的例子,把"springboot + Vaadin10"应用程序打包成一个jar,里面有静态资源吗?
我尝试了很多配置(把CSS放在META-INF中,在maven构建过程中包含webapp资源...),但2天后,我仍然无法在服务器上部署我的app!
2条答案
按热度按时间l7wslrjt1#
最后的解决方案
css必须在这里:
则声明为:
cetgtptt2#
这可能也很有帮助,尽管我仍然错过了一个例子:
Vaadin 10对加载静态资源的方式做了一些改变,比如应用程序模板、自定义样式和任何附加的JavaScript文件。其要点是,当构建一个.war文件时,这些文件应该放在src/main/webapp/frontend/中,当构建一个.jar文件时,这些文件应该放在src/main/resources/META-INF/resources/frontend/中。
链接至Vaadin文档:Vaadin 10 and static resources