15

我的 Java Web 应用程序的根目录中有一个 css 文件夹。我的导入语句如下所示:

<link rel="stylesheet" type="text/css" href="/css/styles.css"/>

该样式未应用,因此我假设未正确指定 css 目录的路径。如何指定 css 目录位于 Project 文件夹的根目录?

我的项目文件夹包含:

build
css
dist
nbproject
src
web
build.xml

我正在查看的 html 页面是 index.html,显示的 URL 是 localhost:8080/ServletApp/

4

3 回答 3

44

背景

Absolute:浏览器将始终解释/为主机名的根。例如,如果我的网站是http://google.com/并且我指定/css/images.css了,那么它将在http://google.com/css/images.css. 如果您的项目根目录实际上是在/myproject/它不会找到 css 文件。因此,您需要确定项目文件夹根目录相对于主机名的位置,并在href符号中指定。

相对:如果你想引用你知道在 url 上的相同路径中的东西 - 也就是说,如果它在同一个文件夹中,例如http://mysite.com/myUrlPath/index.htmland http://mysite.com/myUrlPath/css/style.css,并且你知道它总是这样,你可以违反约定并通过不在路径前面放置前导来指定相对路径/,例如css/style.css.

文件系统表示法:此外,您可以使用标准文件系统表示法,例如... 如果你这样做http://google.com/images/../images/../images/myImage.png,它将与http://google.com/images/myImage.png. 如果您想引用文件中一个目录的内容,请使用../myFile.css.


您的具体案例

在您的情况下,您有两种选择:

  • <link rel="stylesheet" type="text/css" href="/ServletApp/css/styles.css"/>
  • <link rel="stylesheet" type="text/css" href="css/styles.css"/>

如果您移动内容,第一个将更加具体和兼容,但是如果您打算将文件保留在同一位置,并且您打算删除 URL 的 /ServletApp/ 部分,那么第二个解决方案会更好。

于 2013-07-12T18:09:50.010 回答
1

您必须将css文件夹移动到您的web文件夹中。看来您web在硬盘驱动器上的/ServletApp文件夹等于从 www 看到的文件夹。web无法从浏览器访问文件夹内的其他内容。

CSS 链接的 url 然后是

 <link rel="stylesheet" type="text/css" href="/ServletApp/css/styles.css"/>
于 2013-07-12T18:44:37.273 回答
0

如果包含该链接标签的文件位于项目的根目录中,则正确的路径将是“css/styles.css”

于 2013-07-12T18:09:30.067 回答