1

Angular2 CLIを使用してスキャフォールドを支援し、角度2のプロジェクトを作成しようとしています。これにはテストスイート、Webpackなどの優れた設定も含まれます。WebpackホストからGoogle App Engineバックエンドへのリクエストのリダイレクト

Google App EngineでPythonでAPIを開発しました。残念ながら、私がフロントエンドをホストするためにGAEを単独で使用すると、webpack(自動検出、リロード、ユニットテスト)がうまく機能しなくなります。

バックエンドにリクエストをリダイレクトするためにプロキシ設定を使用しようとしました。

{ 
    "/api" :{ 
    "target": "http://localhost:8080", 
    "secure": false, 
    "loglevel": "debug" 
    }, 
    "/_ah" :{ 
    "target": "http://localhost:8080", 
    "secure": false, 
    "loglevel": "debug" 
    } 
} 

ng serve --proxy-config proxy.config.jsonでプロキシ設定を参照しています。 これはwebapp2を使用して直接定義したリクエストに対して機能します。これらのリクエストは/ apiレベルで保持されます。

これは、私がエンドポイントライブラリを使用して定義する/ _ahの後ろに定義した要求では失敗します。ホストしている間、私は期待しています

ModuleDoesNotExistError('localhost:4200',) 
Traceback (most recent call last): 
    File "/usr/lib/google-cloud-sdk/platform/google_appengine/lib/cherrypy/cherrypy/wsgiserver/wsgiserver2.py", line 1302, in communicate 
    req.respond() 
    File "/usr/lib/google-cloud-sdk/platform/google_appengine/lib/cherrypy/cherrypy/wsgiserver/wsgiserver2.py", line 831, in respond 
    self.server.gateway(self).respond() 
    File "/usr/lib/google-cloud-sdk/platform/google_appengine/lib/cherrypy/cherrypy/wsgiserver/wsgiserver2.py", line 2117, in respond 
    for chunk in response: 
    File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/endpoints/endpoints_server.py", line 121, in __call__ 
yield self.dispatch(request, start_response) 
    File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/endpoints/endpoints_server.py", line 151, in dispatch 
return self.call_spi(request, start_response) 
    File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/endpoints/endpoints_server.py", line 324, in call_spi 
spi_request.source_ip) 
    File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/dispatcher.py", line 639, in add_request 
headers_dict['Host'], urlparse.urlsplit(relative_url).path) 
    File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/dispatcher.py", line 713, in _resolve_target 
raise request_info.ModuleDoesNotExistError(hostname) 
ModuleDoesNotExistError: localhost:4200 

は、私は角CLI/WebPACKのコンボの値を保つことができることを私はGAEでの設定、ポート4200またはいくつかの他の方法からの要求を許可することができ、コンフィギュレーションがありGAEのローカルAPI。


UPDATE

私はそれが仕事を得るためにはかなりの総何かをしたが、私はまだ、私は設定ファイルが欠落していますように感じます。仕事にそれを得るために

私のハックは、アプリケーション・サーバーのPYファイルを更新しました: "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/dispatcher.py"

を私はこれが今、もはやエラーがスローされますが、このハードコードされたオプションif not hostname or hostname == default_address or hostname == 'localhost:4200':

にライン685を変更しませんひどい修正。どんな助けもありがとうと思いますので、私はこれを取り除き、ツールを適切に使用することができます。

答えて

3

proxy.configでchangeOriginをtrueに設定してみてください。次のように:

"/_ah" : { 
    "target": "http://localhost:8080", 
    "secure": false, 
    "loglevel": "debug", 
    "changeOrigin": true 
} 
+0

ファンタスティック!私は私の変更を取り消し、これはうまくいく!私は多くの担当者を持っていれば私はupvoteだろうが、非常にありがとう! – Sean

関連する問題