当前位置: 首页 > 知识库问答 >
问题:

找不到带有排除的模板Java+spring的CSS&JS文件

子车轶
2023-03-14

我使用spring为我的项目,我排除了所有模板文件到另一个“HTML项目”。我这样做是因为我可以在没有任何重新部署的情况下进行更改,而且对我来说,它的方式更加清晰。它工作良好,spring应用程序找到所有模板。但现在,模板找不到任何css或js文件。模板试图搜索我的spring项目中的文件,但它们包含在html项目中。我该怎么修好它?我想我需要一条相对路径。

项目

SpringApp
-----lib
-----src
---------main
---------Java
-----------com.example.test
---------------------controller
-------------showindex.Java
-----------------------------------resources
-----------webApp
-----------test

showindex.java的内容

@RequestMapping(value = "/index", method = RequestMethod.GET)
public String index(ModelMap model) {
    model.put("prename", "Hans-Peter");

    return "index";
}

index.ftl的HeaderContent

<!-- Bootstrap core CSS -->
<link rel="stylesheet" href="./css/bootstrap.min.css">
<link rel="stylesheet" href="./css/zeus.css">

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>

有什么想法吗?

我使用:
Java
spring WebMVC
Freemarker作为模板引擎

共有1个答案

赵君植
2023-03-14

CSSJS图像放入src/main/webapps文件夹,与模板FTL文件分开。

编辑

使用Servlet3.0,您有另一种选择,但可能不是在所有容器中都能工作...

  1. 创建元INF/resources文件夹
  2. 将所有资源JS、css、图像等放入此文件夹
  3. 并“jar”它。

例如,我创建了一个assembly.xml文件来自动化这项工作

<assembly>
    <id>bin</id>
    <formats>
        <format>jar</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
    <dependencySets>
        <dependencySet>
            <useProjectArtifact>false</useProjectArtifact>
            <outputDirectory>/</outputDirectory>
            <excludes>
                <exclude>**</exclude>
            </excludes>
        </dependencySet>
    </dependencySets>
    <fileSets>
        <fileSet>
            <directory>target/classes</directory>
            <outputDirectory>/</outputDirectory>
            <includes>
                <include>**/*.class</include>
            </includes>
            <excludes>
                <exclude>**/DefaultController.class</exclude>
            </excludes>
        </fileSet>
        <fileSet>
            <directory>WebContent</directory>
            <outputDirectory>META-INF/resources</outputDirectory>
            <includes>
                <include>/WEB-INF/jsp/**</include>
            </includes>
        </fileSet>  

        <fileSet>
            <directory>WebContent</directory>
            <outputDirectory>META-INF/resources</outputDirectory>
            <includes>
                <include>js/**</include>
                <include>plugins/**</include>
            </includes>
        </fileSet>
    </fileSets>
</assembly>

当使用maven构建MVN包时,该文件可以工作。

附注:

在mavenpom.xml中:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    ...

    <build>
        ...

        <plugins>
            ...

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <descriptors>
                        <descriptor>assembly.xml</descriptor>
                    </descriptors>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

        </plugins>
    </build>
    ...

</project>
 类似资料:
  • 我有以下bean配置 以下函数用于发送解析模板和发送电子邮件。 但这会给出一个FileNotFound异常。

  • 我正在开发spring boot 2 thymeleaf web应用程序。我想从jar文件中呈现一个模板及其静态资源。js、CSS和消息出现404错误。属性文件,而模板正在浏览器上渲染,但相关的js、css没有。为了从jar文件呈现模板,我配置了ClassLoaderTemplateResolver,如下所述: 其中getCustomClassloader()将返回加载我的测试的URLclassl

  • 我提到了很多关于某某甚至Spring的其他问题。关于spring boot的io指南,我的理解是,我们应该将html模板保存在templates文件夹和所有其他文件夹中。css、图像、。静态文件夹中的js文件。我也做了同样的事情,但每当加载页面时,只会呈现html,浏览器就会得到404。css和。js文件。 我必须包括在内。css和。以以下方式在我的HTML中使用js: 我尝试了所有的组合,比如:

  • 我试图通过Django制作一个新网站的主页。我的应用程序名称是“博客”,主页是home.html当我去http://127.0.0.1:8000/blog/home/时,我仍然收到错误模板不存在 我确保在settings.py中将“blog”添加到我的模板中,并在主目录中以及通过blog/templates/blog/home.html添加文件夹模板 myproject/blog/views.py

  • 当我使用Spring Boot1.4.0+Thymeleaf时,我发现静态资源无法访问,并抛出错误“模板可能不存在或任何配置的模板解析器都无法访问”。 关于我的静态资源的文件夹结构 浏览器显示500错误

  • 我是Spring Boot的新手,我的问题是我有Spring Boot项目,我打算用Thymeleaf查看我的超文本标记语言页面,但Spring无法解析我的JavaScript和CSS文件。 这是我的胸腔构造 这是我的HTML页面标题: