2013-08-26 3 views
5

Ich versuche, eine lokale Site-Root mit dem Basis-Tag festlegen. Der folgende Code funktioniert nicht. Mache ich etwas falsch? Wie stelle ich den Ordner mysite als Basis ein?html <base> Tag bezieht sich auf den lokalen Ordner

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <base href="file:///home/me/mysite"></base> 
     <title> Asset Take On Process </title> 
     <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> 
     <link rel="stylesheet" type="text/css" href="/css/main.css" /> 
    </head> 
    <body> 
     some stuff 
    </body> 
    </html> 

Die Seite Ordnerstruktur ist

mysite 
    |___css 
    |___img 
    |___js 

und so weiter ..

Wenn ich die Web-Seite laden nicht auf alle main.css im css Ordner nicht sehen.

+2

Sie sollten diese Frage vor jedem Verfahren lesen http://StackOverflow.com/Questions/1889076/IS-Reommended-To-use-the-Base-HTML-Tag –

+0

danke @Mitz. Das ist nützlich zu wissen. –

+1

Der DOCTYPE ist falsch, wie Sie sehen, wenn Sie versuchen, das Dokument zu validieren. Die Frameset-Version ist nur für Frameset-Seiten gedacht, die ein 'Frameset'-Element enthalten. –

Antwort

4

Wenn Sie diese/entfernen, sollte es es aus dem aktuellen Pfad relativ zu machen, die, wenn ein Basis-Tag vorhanden ist, wäre

http://localhost/website/. 

Sie werden auch einen nachgestellten/zum Ende hinzufügen müssen von die href, um anzuzeigen, dass es sich um einen Ordner handelt.

Vollarbeitsbeispiel:

<!doctype html> 
<html> 
<head> 
<base href="/test/" /> 
<script src="assets/test.js"></script> 
<body> 
hi 
</body> 
</html> 
  • Eigentlich je nachdem wen man fragt, ist es immer noch relativ, da sie relativ aus der aktuellen Domäne ist. Aber ich ziehe es vor, dies absolut zu nennen, da es bedeutet, dass der Pfad ausgehend von der Wurzel auf der aktuellen Domäne basiert. Obwohl, technisch gesehen, macht es das relativ im großen Schema der Dinge und absolut nur in Bezug auf die aktuelle Domäne. Was auch immer.

freundlich verweisen auf diesen Link

http://social.msdn.microsoft.com/Forums/ie/en-US/c51bb8b9-40ab-437b-a125-88b660f3e1ca/ie8-base-tag-issues

+0

danke @Backtrack, dass ein Charme gearbeitet hat. –

+0

@TahnoonPasha thanks – Backtrack

+0

Eine URL mit 'http: // localhost' unterscheidet sich ziemlich von der' file: // 'URL in der Frage. (Zu Beginn benötigt letzteres keinen HTTP-Server auf dem lokalen Computer.) –

4

Ein korrekter Tag

<base href="file:///home/me/mysite/"/> 

wenn Sie es wünschen würde file:///home/me/mysite/ als die Basisadresse zu setzen, so dass zum Beispiel css/main.css bezieht sich auf file:///home/me/mysite/css/main.css. Beachten Sie die Wichtigkeit der Schrägstriche. In einem href Wert in base wird alles nach dem letzten Schrägstrich ignoriert: file:///home/me/mysite bedeutet dasselbe wie file:///home/me/ dort.

Dies ist ein verwirrendes Thema, und es wird durch die Implementierung einiger Browser verwirrt, die relative URLs im Wert unterstützen könnten; nach den Spezifikationen sind nur absolute URLs erlaubt.

Es gibt normalerweise keinen Grund, das Element base zu verwenden. Relative URLs wie css/main.css oder ../css/main.css funktionieren einwandfrei, indem Adressen relativ zur Adresse der HTML-Seite angegeben werden. Dies bedeutet, dass sie nicht geändert werden müssen, wenn die Site auf einen Server hochgeladen wird.

+0

danke @ JukkaK.Korpela Bitte beachten Sie meine folgen auf Frage beschreibt die Problem habe ich mit relativen Pfaden hier http://stackoverflow.com/questions/18442958/using-a-relative-url-scheme-effectively. Dies ist jedoch eine nützliche Antwort. –

3

einfach die anderen Antworten zu klären:

Die Basis-Tag in einem Slash enden muss. Die folgende URL müssen beginnen, nicht mit Schrägstrichen:

Es ist logisch ist, weil sie zusammen das Hinzufügen einer vollständigen Adresse macht. Aber es ist kontraintuitiv, weil wir es gewohnt sind, /images/image.jpg zu verwenden, damit die Dinge überall funktionieren.

+0

Es hängt vom Browser ab ... – yckart

Verwandte Themen