href не работает на локальном хосте: возможно, неправильный каталог? - PullRequest
0 голосов
/ 21 декабря 2018

Я работаю с Java и Eclipse и использую HttpServer.Мне нужно написать простой сервер и пару веб-страниц.Это каталог моего проекта:

Demo
|
--bin
|
|
--doc
|   |
|   --js
|   --index.html
|   --ciao.html
|
--src
    |
    --server
        |
        --RootHandler.java

Когда я подключаюсь к localhost через правильный порт, RootHandler в Java дает мне файл index.html, который является моей домашней страницей, и все в порядке:

public void handle(HttpExchange arg0) throws IOException {
    // TODO Auto-generated method stub
    if (arg0.getRequestURI().getPath().equals("/")) {
        StringBuilder text = new StringBuilder("");
        try {
            File f = new File("./doc/index.html");
            BufferedReader br = new BufferedReader(new FileReader(f));
            String line;
            while ((line = br.readLine()) != null) {
                text.append(line + "\n");
            }
            br.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        arg0.sendResponseHeaders(200, text.length());

        OutputStream os = (OutputStream) arg0.getResponseBody();
        os.write(text.toString().getBytes());
        os.close();
    }
}

Проблема в том, что я захожу на свою домашнюю страницу и хочу изменить страницу или включить Javascript.Если в index.html я просто использую тег привязки, как это:

<a href="ciao.html">Ciao</a>

, он не работает.Страница загружается навсегда, и запрос нового ciao.html остается «ожидающим».Обратите внимание, что новая страница находится в том же каталоге, что и index.html.

Я пробовал другие пути, такие как:

/ciao.html
./ciao.html
/doc/ciao.html
doc/ciao.html

и многие другие, но никто не работал.Чего мне не хватает?Какой корневой каталог моего веб-сайта?

Очевидно, что проблема также возникает, когда я хотел бы включить скрипт, потому что он не работает, и его варианты тоже не работают:

<script type="text/javascript" src="/js/bootstrap.js"></script>

...