2017-06-09 3 views
3

angeben Ich bin konfrontiert sehr seltsam Problem mit AngularJS Routen. Ich habe bestimmte Ordnerstrukturwie relativen Pfad in Basis-URL in AngularJS

js -> Angular -> 
css -> Bootstrap -> 
index.html 

Alle Routen läuft gut, wenn auf einigen Servern wie IIS gehostet. Aber ich kopiere die gesamte Direktive & an einer anderen Stelle einfügen oder mit jemandem teilen. Wenn sie mit dem Dateisystem laufen, erhalten sie den Fehler Dateien nicht gefunden.

Das ist mein wie index.html aussieht.

<!DOCTYPE html> 
<html> 
    <head> 
    <meta name="viewport" content="width=device-width" /> 
     <base href="" /> 
     <!--css--> 
    <link href="./css/Bootstrap/bootstrap.min.css" rel="stylesheet" /> 
</head> 
<body ng-app="myApp"> 
<div class="container-fluid"> 
    <!--content--> 
    <!--menu tabs--> 
    <div class="col-md-12" style="margin-top:10px;"> 
    <a href="/car"> CAR</a> <br/> 
    <a href="/mobile">Mobile</a> 
    </div> 
    <!--angular template placeholder--> 
    <div ng-view> </div> 
    <!--footer--> 
</div> 
<!--js--> 
<script src="./js/Angular/Lib/angular.js"></script> 
<script src="./js/Angular/Lib/angular-route.js"></script> 
<script src="./js/Angular/Config/ngRouteConfig.js"></script> 

Dieses 404 Problem nur auftritt, wenn ich Basis Tag in der html.If habe ich es entfernen, macht Seite Bußgelder. Dies hört jedoch auf, die Winkelführung auszuführen.

Ich habe eine E-Mail von meinem Senior erhalten, dass ich keinen absoluten Pfad angeben sollte, aber ich finde keinen Ort in meiner index.html, wo ich absolute Pfade angegeben habe.

Also wie gebe ich den relativen Pfad an, so dass jeder, der die gleiche Ordnerstruktur hat, die Demo-App ausführen kann ??

Jede Hilfe/Vorschlag in hohem Grade appraected.

Antwort

0

Verwendung:

<!DOCTYPE html> 
<html> 
    <head> 
     <meta name="viewport" content="width=device-width" /> 
     <!-- 
     <base href="" /> 
     --> 
     <script> 
     document.write('<base href="' + document.location + '" />'); 
     </script> 

     <!--css--> 
    <link href="./css/Bootstrap/bootstrap.min.css" rel="stylesheet" /> 
</head>  
+0

gleiche, was ich paaren habe meine Anforderung zu adressieren;) Ich war über diese zu teilen. Vielen Dank –

1

Haben Sie versucht:

<base href="/" /> 

Wenn Sie Ihre App in den Root-Kontext bereitstellen (zB https://myapp.com/), legen Sie die Basis-URL zu /:

<head> 
    <base href="/"> 
    ... 
</head> 

Wenn Sie Ihre App in einem Unterkontext bereitstellen (z. B. https://myapp.com/subapp/), Set die Basis-URL an die URL des Subkontext

Angular Docs $location/nobase

Angular Docs $location

In Bezug auf die absolute Pfade <a href="/car"> CAR</a> ist nicht ganz ein absoluter Pfad, jedoch hat es den Browser zwingen um im ROOT-Verzeichnis des Webservers nach der Route zu suchen. Wenn also jemand, mit dem Sie teilen, die App in ein Unterverzeichnis einbindet, wird dies höchstwahrscheinlich den Fehler verursachen.

In diesem Fall sollten sie die <base href="to-wherever-they-put-the-thing" /> auf ihrem Webserver, oder Sie sollten angeben, um es im ROOT-Verzeichnis eines Webservers ausführen.