href在localhost上不起作用:也许目录错误?

时间:2018-12-21 17:53:41

标签: java html httpserver

我正在使用Java和Eclipse,并且正在使用HttpServer。我需要编写一个简单的服务器和几个网页。 这是我的项目目录:

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

当我在正确的端口连接到本地主机时,Java中的RootHandler给了我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>

0 个答案:

没有答案