CSS文件的相对路径

use*_*644 8 css

我在Java Web Application的根目录下有一个css文件夹.我的import语句如下所示:

<link rel="stylesheet" type="text/css" href="/css/styles.css"/>
Run Code Online (Sandbox Code Playgroud)

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

我的项目文件夹包含:

build
css
dist
nbproject
src
web
build.xml
Run Code Online (Sandbox Code Playgroud)

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

Chr*_*art 34

背景

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

相对:如果你想引用你知道的东西是在URL中的同一路径-也就是说,如果是在同一个文件夹,例如http://mysite.com/myUrlPath/index.html和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 /部分,那么第二个解决方案更好.

  • 第三个选项是指定一个 `&lt;base href="" /&gt;` ,它将覆盖相对于解析的相对路径。 (2认同)

Mil*_*ari 0

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

  • 不,这是相对于当前页面的。如果他们位于 site.com/mypage/page/ 该怎么办? (3认同)