【问题标题】:How to make HTML read CSS in a Maven project如何在 Maven 项目中使 HTML 读取 CSS
【发布时间】:2017-04-04 12:07:53
【问题描述】:

我在 STS 中创建了一个 Maven 项目,没有原型并且包装为“战争”。

项目结构如下

portal
    ----Deployment Descriptor: portal
    ----JAX-WS Web Services
    ----Java Resources
        ----src
            ----main
                ----java
                ----resources
                    ----assets
                        ----login.css
                ----webapp
                    ----login.html
            ----test
                ----java
                ----resources
        ----Libraries
    ----Javascript Resources
    ----Deployed Resources
    ----target          
    ----pom.xml

我在src/main/webapp 文件夹中创建了login.html,并在src/main/resources 中创建了assets/login.css

我的问题是,当我尝试在 html 代码中包含该 css 文件时,它无法读取。

该怎么办?

另外,在谷歌搜索了一下之后,我才知道对于这种情况,将文件放在 WEB-INF 中,剩下的一切就由它来完成。但是在创建项目时,没有创建 WEB-INF 文件夹。虽然我可以自己创建它,但只是想知道我在创建一个默认情况下应该创建 WEB-INF 文件夹的 maven 项目时做错了什么。

【问题讨论】:

  • 你在运行什么网络服务器? HTML 不读取任何内容,它只是被解释并且浏览器对它需要的任何资源发出额外的请求。你检查过浏览器控制台吗?它会抛出任何错误吗?
  • 您(对于基本用例)不能将 CSS 文件放入 WEB-INF,因为无法通过 URL 直接访问 WEB-INF 中的任何内容。
  • 当您构建war 时,css 文件最终位于哪个路径中?我希望将resources 放入web-inf,而您希望css 文件在公共部分。 webapp 应该是我理解的正确位置。
  • @Catalin 我正在使用 Tomcat v7.0。
  • @Catalin 它说“加载资源失败”

标签: java html css maven


【解决方案1】:

根据您提供的信息,我猜您创建了一个新的 maven 项目,[x]创建一个简单的项目(跳过原型选择)。如果您确实以这种方式创建项目,则默认情况下不会创建 WEB-INF 文件夹。

如果您执行 New->Maven Project->Next-> 并选择 maven-archetype-webapp 默认情况下,您将得到一个 WEB-INF 文件夹. 注意: “webapp” 原型。

关于 .css 文件的放置位置。 Maven 的标准目录布局建议src/main/webapp 用于Web 应用程序资源。 另一个Q&A 对 Web 项目的 .css 文件的位置提供了很好的答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-02
    • 1970-01-01
    • 2018-03-28
    • 2015-05-28
    • 2015-09-26
    • 1970-01-01
    • 1970-01-01
    • 2015-08-11
    相关资源
    最近更新 更多