前提・実現したいこと
とある名簿のWEBアプリをecripseにて製作しています。
input.jspのフォームから名前を入力し、登録ボタンを押しますと
サーブレットに情報が送信され、DB検索を行い、
重複する名前があるとinput.jspに遷移し「重複するデータがあります」
との表記をし、再入力の要求を行うものです。
重複の確認プログラムと、メッセージ表記は出来ましたが、問題があります。
http://8080/projectName/jsp/input.jspに直接アクセスした際はCSSが反映されますが
重複するデータを送信した際のjspにCSSが反映されません。
(jsp(反映) → servlet → jsp(反映されない))
このときのアドレスバーは
http://8080/projectName/servletになっています。
試しにjspにCSSをふたつ記載すると、エラーメッセージ表記時のjspにも反映されます。
<link rel="stylesheet" href="../css/design.css"> <link rel="stylesheet" href="css/design.css"> つまりはjspフォルダからjspを見ているのか、 servletからjspを見ているのか、の違いが起きていると解釈していますが、 そうするとCSSを2つ記載する以外に方法が無いのでは?と思っています。絶対パスを使わず、コンテキストパスとやらを使ってくださいとの指示です。
いくら調べてもコンテキストパスというものが理解できませんので、使い方も分からない状況です。
発生している問題・エラーメッセージ
クロームのコンソールより
Failed to load resource: the server responded with a status of 404 (Not Found)
カレントフォルダが変わるため、CSSへのパスも変わってしまうものかと解釈しています
該当のソースコード
HTML
1 <head> 2 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 3 <!-- input.jspから見たCSS --> 4 <link rel="stylesheet" href="../css/design.css"> 5 <!-- エラー表記画面から見たCSS --> 6 <link rel="stylesheet" href="css/design.css"> 7 8 <!-- input.jspから見たJS --> 9 <SCRIPT TYPE = "text/javascript" src="../js/script.js"> </SCRIPT> 10 <!-- エラー表記画面から見たJS --> 11 <SCRIPT TYPE = "text/javascript" src="/js/script.js"> </SCRIPT> 12 13 <title>顧客名簿 登録画面</title> 14 </head> 15 16
試したこと
<link rel="stylesheet" href="request.getServletPath()"> <link rel="stylesheet" href="request.getServletPath()/css/design.css"> など、思いつく限りのパスを書きました。 http://projectName/css/design.cssは使わないようにとの指示です。補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/07/21 06:00