2017-06-09 22 views
3

私は AngularJSルートでは非常に奇妙な問題に直面しています。特定のフォルダ構造を持っていますAngularJSでベースURLの相対パスを指定する方法

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

IISのような一部のサーバーでは、すべてのルートが正常に動作します。しかし、私は全体の指示書&を他の場所に貼り付けるか、誰かと共有します。ファイルシステムで実行すると、ファイルが見つかりませんというエラーが表示されます。

これは私のindex.htmlの外観です。

<!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> 

私はhtml.Ifに存在ベースタグを持っている場合にのみ、この404問題は、私はそれを削除発生し、ページには罰金をレンダリングします。しかし、角度ルーティングの実行が停止します。

シニアから絶対パスを指定してはいけないというEメールが届いていますが、絶対パスを指定したindex.htmlにはどこも見つかりません。

これで、同じフォルダ構造を持つすべてのユーザーがデモアプリケーションを実行できるように、相対パスを指定する方法を教えてください。

非常に身近な助言/提案。

答えて

0

用途:私は私の要件に対処するためにチームメイトでした

<!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

同じ事;)私はこれを共有することを約ありました。ありがとう –

1

あなたが試してみました:

<base href="/" /> 

を使用すると、ルートコンテキスト(例えば https://myapp.com/)にアプリケーションをデプロイする場合は、/へのベースURLを設定します。

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

アプリをサブコンテキストにデプロイする場合(例: https://myapp.com/subapp/)、絶対パスに関しては

Angular Docs $location/nobase

Angular Docs $location

サブコンテキストのURLにベースURLを設定し、<a href="/car"> CAR</a>は非常に絶対パスではない、しかし、それは、ブラウザを強制しルートを探すためにWebサーバーのROOTディレクトリを振り返ります。そのため、あなたが共有している人がサブディレクトリにアプリケーションをマウントすると、エラーが発生する可能性が高くなります。

この場合、Webサーバー上に<base href="to-wherever-they-put-the-thing" />を設定するか、WebサーバーのROOTディレクトリで実行するように指定する必要があります。

関連する問題