【问题标题】:Kotlin Web App | link css fileKotlin 网络应用程序 |链接css文件
【发布时间】:2017-09-08 12:02:54
【问题描述】:

我是 Kotlin 和 Java 的新手,从这个例子开始:https://kotlinlang.org/docs/tutorials/httpservlets.html

我使用 Gradle 构建了应用程序,并且可以正常运行。在下一步中,我尝试链接 CSS 文件,但总是出现 404 错误。我在这里创建了css文件:src/main/resources/css/style.css

Gradle 将文件复制到此位置:build/resources/main/css/style.css,我使用此路径将其链接到源代码中。

package org.jetbrains.kotlin.demo

import javax.servlet.annotation.WebServlet
import javax.servlet.http.HttpServlet
import javax.servlet.http.HttpServletRequest
import javax.servlet.http.HttpServletResponse

@WebServlet(name = "Hello", value = "/hello")
class HomeController : HttpServlet() {
    override fun doGet(req: HttpServletRequest, res: HttpServletResponse) {
        res.writer.write(myView("nice headline"))
    }

    fun myView(headline: String ): String  {
        var content = """<!DOCTYPE html><html>
            |<head>
            |<link href="./build/resources/main/css/style.css" rel="stylesheet">
            |</head>
            |<body><h1>$headline</h1></body>
            |</html>""".trimMargin()
        return content
    }
}

知道这里有什么问题吗? THX!

【问题讨论】:

  • 我找到了另一个解决方案来为 css 提供服务。我在/src/main/ 中创建了一个webapp 目录。我的 CSS 位于此处:/src/main/webapp/css/style.css 要在标题中链接它,我使用 localhost:xxxx/first-project/css/style.css

标签: gradle kotlin


【解决方案1】:

你需要提供你的 CSS 文件,你不能只拥有一个到文件系统的相对链接,因为浏览器正在尝试读取你的服务器上没有提供的路径。

如果您在/style.css 提供它,那么您可以将href 值设置为style.css,否则您希望将该值作为从站点根目录到以/ 开头的css 文件的路径,或相对于 /hello 否则。

提供它的最简单方法是将其作为第二个 servlet 添加到您的服务器上,路径为 style.css。有更好的方法,但这些方法往往取决于服务器。

【讨论】:

  • 0 反对票 接受 感谢您的回答。不确定如何“提供”css 文件。这是我必须在 Gradle 中配置的东西吗?
  • 扩展答案以涵盖如何提供 css
猜你喜欢
  • 2018-03-20
  • 2017-12-24
  • 1970-01-01
  • 2022-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-14
  • 2017-12-25
相关资源
最近更新 更多