JSPで外部cssをlink指定する

コンテキストルート直下にあるJSPで同じ階層に置いた外部cssファイルをlink指定する場合、通常の指定法

<link rel="stylesheet" href="xxxx.css">

では、コンテキストルート経由の指定でないためか内部で404(Not Found error)が出てしまいます。そこで、

<link rel="stylesheet" href="${pageContext.request.contextPath}/xxxxx.css">

とすると、正しくlink情報が渡りTomcatを単体で動かしている場合はcssがJSPに取り込まれます。

なお、cssの配置場所としては外部cssはブラウザがgetするので外部から参照できる階層に置かなければいけないでしょう。そこでWEB-INFなどの中ではなくコンテキスストルート直下かそこに作ったフォルダー内が良いでしょう。

<Tomcatを単体で動かしている場合は>と書いたのはEclipseでTomcatを使っている場合は、さらに注意が要ります。link指定する外部cssファイルをファイルシステム上コンテキストルート直下においても、Eclipseのエクスプローラーにそのファイルが現れない限り、Eclipseに組み込まれたTomcatからはそのファイルが見えないのでブラウザからget要求が来ても、404エラーを出すという事です。
これの対処法についてはEclipseについての記事:Eclipseで実行するJSPが外部cssをlink指定する場合の注意で説明しているので参照してください。

カテゴリー: JSP_Servlet タグ: , , パーマリンク