0

Tomcat 7.0 を使用しています。現在、css および js ファイルを読み込めないという問題に直面しています。${pageContext.request.contextPath} を追加しようとしても機能しません。c:url タグも試しましたが、Eclipse で構文エラーが発生しました。

これらのファイルの構造は次のとおりです。

WebContent
-content/css/lab3.css
html および js フォルダーも content フォルダーの下にあります。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>lab3</display-name>
  <welcome-file-list>
    <welcome-file>/content/html/lab3.html</welcome-file>
  </welcome-file-list>
</web-app>

ここにhtmlの頭があります:

<link rel="stylesheet" type= "text/css" href= "${pageContext.request.contextPath}/css/lab3.css"  media="screen, projection">
4

2 に答える 2

6

EL 式${}は、プレーンな HTML ファイルでは実行されません。JSP (およびFacelets ) ファイルでのみ実行されます。あなたの特定のケースでは、名前を に変更lab3.htmlするlab3.jspか、次の JSP サーブレット マッピングを に追加するだけweb.xmlです。

<servlet-mapping>
    <servlet-name>jsp</servlet-name> <!-- This is the default servlet name of Tomcat's own JSP servlet. To be sure, look in Tomcat's own web.xml for the exact name. -->
    <url-pattern>*.html</url-pattern>
</servlet-mapping>

これにより、Tomcat はすべての.htmlファイルを JSP ファイルであるかのように扱うようになり、その結果、EL はファイル内でも即座に機能し.htmlます。

上記のいずれも受け入れ可能な解決策でない場合は、論理的な考え方に戻り、相対パスを適切に理解して使用する必要があります。ローカル ディスク ファイル システムと同様に../、URL に 1 つのフォルダが表示されます。HTML ファイルが に/content/html/lab3.htmlあり、CSS ファイルが に/content/css/lab3.cssある場合、次のようにする必要があります。

<link ... href="../css/lab3.css" />
于 2013-08-24T01:59:38.827 に答える
1

${pageContext.request.contextPath} の代わりに ${request.contextPath} を使用します

于 2015-01-23T16:36:53.500 に答える