私は HTML と JavaScript のコーディングを学んでいましたが、IP アドレスを使用してページにアクセスするときに、相対パスを使用してスクリプトと CSS をロードすることに関して、少し混乱する (そして非常に苛立たしい問題) に遭遇しました。Chrome 30.0.1599.69 と IE10 の両方に問題はないようですが、Firefox 24 には問題があり、名前ではなく IP アドレスを使用している場合のみです。
フォルダ構造は次のとおりです。
Dashboard/index.html
Dashboard/css/dashboard.css
Dashboard/js/dashboard.css
Dashboard/leaflet/
etc
HTML は次のようになります。
<!DOCTYPE html>
<html>
<head>
<title>Dashboard</title>
<meta charset="utf-8" />
<!-- css loading -->
<link rel="stylesheet" href="leaflet/leaflet.css" />
<link rel="stylesheet" href="css/dashboard.css" />
<!-- script loading -->
<script src="leaflet/leaflet.js"></script>
<script src="js/dashboard.js"></script>
<script src="d3.v3/d3.v3.js"></script>
</head>
<body>
etc...
http://localhost:8888/Dashboard/
上記は、すべてのブラウザー (ブラウザー バー) で(python simpleHTTPServer を使用して) localhost 経由で開いた場合に正常に動作します。ダッシュボード フォルダとサブフォルダをC:\Inetpub\wwwroot\
Windows Server 2003/IIS 6.0 の既定の Web ページ エリア ( ) に移動し、ページにアクセスしようとすると、Firefox を使用して IP アドレスで試すまでは問題なく動作します。
たとえばhttp://mywebpage/Dashboard/index.html
、ページを表示し、すべての css、js ファイルなどを正しくロードします。コンソールを使用すると、次のことがわかります。
[10:57:32.081] GET http://mywebpage/Dashboard/css/dashboard.css [HTTP/1.1 200 OK 10ms]
IPで試してみると(名前はネットワーク上でのみ解決され、外部のときにページを表示したいため)、Firefoxで次のエラーが発生します。
[10:57:25.135] GET http://XXX.XXX.XXX.XXX/css/Dashboard.css [HTTP/1.1 404 Not Found 7ms]
それだけでなく、Firefox のアドレス バーの URL が異なって見えます: XXX.XXX.XXX.XXX/Dashboard\index.html#
< バックスラッシュと#
表示に注意してください。
Chrome または IE10 ではこの問題は発生しません。そのため、IP アドレスを使用してアクセスする場合、Firefox は html ドキュメントのパスに対して相対的ではなくサーバーに対して相対的に見えますが、Chrome と IE10 は名前または IP の使用に関係なく、ページに対して相対的に見えます。Firefox は、バックスラッシュを表示#
し、最後に a を追加することも決定します。
フォルダー名を使用してリンクをコーディングすると、Firefox の IP アドレスの問題が解決されるように見えます<link rel="stylesheet" href="Dashboard/leaflet/leaflet.css" />
が、ネットワーク パスにフォルダー名が追加されるため、Chrome が台無しになります (コンソールに表示されます) http://XXX.XXX.XXX.XXX/Dashboard/Dashboard/leaflet/leaflet.css
。Firefox がこのように動作するのはなぜですか? IP が使用されている場合のみなのはなぜですか?
-アップデート-
同僚のマシンでこれをテストしましたが、イライラすることに動作が再現されないため、Firefox のインストールに何か問題があるのではないかと考え始めています。
-アップデート2-
再インストールすると、Firefox は、localhost、サーバー名、および Web ページへの IP アクセスで期待どおりに動作しています。うまくいけば、これはもはや問題ではありません! 私はまだ相対パスを使用しています。先頭の「/」は、サーバーのルート フォルダーに表示され、localhost でのデバッグに影響します。