2017-07-28 15 views
7

Rozpoczynam więc statyczny projekt internetowy w czasie zaćmienia. Powiedzmy, że MySite. A potem uruchamiam serwer WWW na e-micie i uruchamiam localhost: 8080 w mojej przeglądarce.Projekt statyczny sieci web Eclipse Podgląd HTTP/konflikt modułów serwera ze ścieżkami względnymi

To co ja zobaczę:

Main HTTP Preview Page

Więc idę do localhost:8080/MySite/index.html i zobaczyć moją stronę główną.

Home Page

Jak można zobaczyć link nie prowadzi tam, gdzie powinien być. Powinno to być localhost:8080/MySite/index.html, a nawet bardziej preferowane, strona indeksowa MySite powinna być hostowana na localhost:8080/index.html, a nie na jakimś module.

index.html

<!DOCTYPE html> 
<html lang="en"> 
    <body> 
     <a href="/index.html">Home</a> 
    </body> 
</html> 

Gdybym to zmienić na mojawitryna/index.html pokonuje cel przy czym serwer http podglądu, ponieważ MySite ostatecznie będzie miała własną nazwę strony, a nie jakiś modułu.

Jak rozwiązać ten problem bez zastosowania obejścia?

+0

Jeśli mogę uzyskać objaśnienie sposobu korzystania z wtyczki molo przy użyciu domyślnych tylko pliki, które ja mogę wykluczyć, że byłoby fajnie. – Folatt

+0

Co otrzymasz, jeśli uzyskasz dostęp do "http: // localhost: 8080/MySite /" – wargre

Odpowiedz

0

W końcu doszedłem do wniosku, że Eclipse jest tak zorientowany na java, że ​​dla statycznych stron internetowych potrzebuję użyć atomu zamiast tego.

Atom ma platformę ide-terminal, dzięki czemu mogę generować statyczne strony internetowe.
Posiada również atom-live-serwer, chociaż atom-live-server.js musi być manipulowane tak: https://www.diffchecker.com/JD1o1fvy

2

Jak widać, link nie prowadzi w miejscu, w którym powinien być. Należy zamiar localhost: 8080/mysite/index.html, ale zamiast tego idzie do localhost: 8080/index.html

To dlatego, że używasz postać URL, który jest w stosunku do katalogu głównego serwera /.

Po prostu użyj ./ (ścieżka względna strony) zamiast / (ścieżka względna serwera root) w MySite/index.html.

<!DOCTYPE html> 
<html lang="en"> 
<body> 
    <a href="./index.html">Home</a> 
</body> 
</html> 

Mam nadzieję, że pomoże!

+0

To nie zadziała w prawdziwej witrynie. – Folatt

+0

'./'jest ścieżką względną strony, a nie ścieżką do aplikacji, więc jeśli aplikacja ma jakiekolwiek foldery, co robi, to nie działa. – Folatt

+0

Masz rację, '. /' Byłoby względne (zaktualizowane w odpowiedzi).Ale nawet jeśli twoja aplikacja ma foldery, nie możesz po prostu podać ścieżki w stosunku do aplikacji-root ('../ static/foo.css' i' ../ static/bar.js')? – nalinc

1

Witam, pracowałem z serwerem tomcat z Eclipse, mam nadzieję, że to pomoże.

Czy wspominałeś o swojej stronie docelowej w pliku WEB.xml. jeśli nie dodałeś strony docelowej do twojego pliku web.xml, jak poniżej, dodaj to i spróbuj.

<?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" 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>Your Website</display-name> 
    <welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
    </welcome-file-list> 
</web-app> 
Powiązane problemy