2017-11-06 5 views
0

Angularアプリを開発しており、これをElastic Beanstalkに公開しました。 Angularアプリナビゲーション外の特定のルートを入力する場合を除いて、アプリは正常に機能します。ハッシュなしでElastic BeanstalkでホストされているAngularアプリのルーティングを処理する方法

たとえば、mywebsite.com/{some_url}と入力すると、404エラーが発生します。もちろん、mywebsite.comと入力すると、サーバーがindex.htmlとアプリが読み込まれているだけなので、問題ありません。私はそれほど理解しています。

私が扱う必要があるコールバックがない場合、私はウェブサイトのルートから始めなければならないユーザーと一緒に暮らすことができました。ユーザーは、コールバックを使用して自分のWebサイトにリダイレクトされる前に、サードパーティの認証ツールを使用してログインします。もちろん、このリダイレクトuriがロードされると、私のElastic Beanstalkのインストールでは、これをどこにルーティングするか分からないので、404エラーが表示されます。私は特定のURLを入力し、それらを読み込むことができますように、私はまだ一緒にElastic Beanstalkで、角をどのように使用するかを把握する必要があり

404 Error from callback

。少なくとも、コールバックのロードが適切に行われている必要があります。私はまた、ハッシュ方法の回避策を望んでいません。私はきれいなURLをお願いします。

答えて

0

私がやったことは予期せぬことでした。私は何をする必要があるかを正確に理解するために非常に迂回した方法を取ったが、最終的にわかった。

Elastic Beanstalkインスタンスが実行されているプロキシサーバーを知っておくことが重要です。私の場合、プロキシサーバーは実際にはApacheです(私は当初はnginxだと思っていました)。私のプロキシサーバーがApacheであることが分かったら、Apacheプロダクションサーバー用のSPAルーティング問題(Server Configuration)を解決するためのAngularのドキュメントを参照しました。そこから、AWSのEBドキュメントで推奨されている.ebextensionsディレクトリのapache.configというディレクトリに、推奨コードをコピーしました。それを考え出し有するよう恍惚

files: 
    "/etc/httpd/conf.d/spa_redirect.conf": 
     mode: "000644" 
     owner: root 
     group: root 
     content: | 
      RewriteEngine On 
       # If an existing asset or directory is requested go to it as it is 
       RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR] 
       RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d 
       RewriteRule^- [L] 
       # If the requested resource doesn't exist, use index.html 
      RewriteRule^/index.html 

:私のアンギュラプロジェクトのディレクトリのベース、.ebextensions/apache.configから

関連する問題