2016-12-27 20 views
1

私はangular2の仮想ホストを設定する必要があります。私は、誰もが私のアプリは、デフォルトの角度で実行されているとして、アプリケーションへのパスがどうあるべきかを教えてもらえます私はこの角度2のためのApacheを設定する方法

<VirtualHost *:80> 
    ServerName my-app 

    DocumentRoot /path/to/app 

    <Directory /path/to/app> 
     RewriteEngine on 

     # Don't rewrite files or directories 
     RewriteCond %{REQUEST_FILENAME} -f [OR] 
     RewriteCond %{REQUEST_FILENAME} -d 
     RewriteRule^- [L] 

     # Rewrite everything else to index.html 
    # to allow html5 state links 
     RewriteRule^index.html [L] 
    </Directory> 
</VirtualHost> 

などの設定仮想ホストに必要なこれによると、この記事

https://www.packtpub.com/mapt/book/Web+Development/9781783983582/2/ch02lvl1sec15/Configuring+Apache+for+Angular 

を以下試してみました2ポートは4200です。 他の方法がありますか?

+1

あなたは、あなたのアプリがデフォルト角度2ポート上で実行されていることを言います4200は、開発用にローカルサーバーを使用しているときですか?これをプロダクションサーバで使用したい場合は、あなたのビルドに応じてAngular2アプリをビルドします。角度cliを使用している場合は、 'ng build --prod'を使い、distフォルダの内容をあなたのApacheにアップロードしますその仮想ホストのサーバー文書ルート。 –

+0

@JJB私はこれを行い、アプリケーションはip:4200で動作していますが、例えばwww.testapp.comなどの仮想ホストを使用し、これを私の角型アプリケーションにApacheを使ってリダイレクトしたいとします。 – kirti

+0

'dist'あなたがそのコンテンツをアップロードした他のウェブサイトと同じようにして、それをApache経由で提供し、すべての.htmlファイルがindex.html経由で読み込まれるようにしてください。あなたが話しているのは、テスト環境でAngularを実行したときに作成されるローカルテストサーバーです。あなたはApacheサーバーを使用するAngular2アプリケーションを提供するためにNodeJSを使用しません。 'ng serve 'は、Angularとは何の関係もないローカル開発サーバーを提供するためのものです。あなたは角張った右を使っていますか? –

答えて

8

角度-CLIは、プロジェクトのルートにng build --prodを実行して、ローカルの開発環境で

を構築します。

distという名前のフォルダが作成され、dist内のすべてのファイルとフォルダをサーバーのApacheルートディレクトリに配置します。

apacheがindex.htmlへのルートを提供するように設定します。 2つの方法があります。仮想ホストを編集するか、ウェブサイトのルートディレクトリで.htaccessを使用します。


オプション1:仮想ホスト

<VirtualHost *:80> 
    ServerName my-app 

    DocumentRoot /path/to/app 

    <Directory /path/to/app> 
     RewriteEngine on 

     # Don't rewrite files or directories 
     RewriteCond %{REQUEST_FILENAME} -f [OR] 
     RewriteCond %{REQUEST_FILENAME} -d 
     RewriteRule^- [L] 

     # Rewrite everything else to index.html 
     # to allow html5 state links 
     RewriteRule^index.html [L] 
    </Directory> 
</VirtualHost> 

オプション2:.htaccessの

<IfModule mod_rewrite.c> 
    RewriteEngine on 

    # Don't rewrite files or directories 
    RewriteCond %{REQUEST_FILENAME} -f [OR] 
    RewriteCond %{REQUEST_FILENAME} -d 
    RewriteRule^- [L] 

    # Rewrite everything else to index.html 
    # to allow html5 state links 
    RewriteRule^index.html [L] 
</IfModule> 
+1

@J J B index.htmlファイルの内容を教えてください。index.htmlの例を表示できます – kirti

+0

distフォルダにあるインデックスです。使用しているビルドシステムを確認してください。 WebpackまたはSystemJS?あなたはangular-cliを使っていますか? –

+0

角度アプリフォルダ内にエイリアスがあるVirtualDirectoryが必要な場合、設定がどのように変更されるか教えてください。たとえば/ apiは/ angularappfolder/service /?を指します。 – slava

関連する問題