私はこのコマンドで提供しているFlask/Angularアプリケーションを持っています。 Flask、Angular、mod_wsgi-expressはすべてこのプロジェクトの必須コンポーネントです。mod_wsgi-express CSS/JSファイルやブラウザクラッシュの損失を引き起こす書き換えルール
$ mod_wsgi-express start-server run_apache_server.wsgi --rewrite-rules rewrite_psyche_data.conf
run_apache_server.wsgi
(psyche_data_master
はgitのレポとpsyche_data
フラスコアプリのためのPythonモジュールである)次のようになります。
# run_apache_server.wsgi
import sys
#Expand Python classes path with your app's path
sys.path.insert(0, "/Users/Jakob/Desktop/dev_projects/psyche_data_master/psyche_data")
from psyche_data import app
#Initialize WSGI app object
application = app
私は取得のヘルプフォーラムに基づいて、ここでいくつかのことを試してみました404エラーが修正されました(これらは、私が使用する必要のあるこのHTMLオプションを使用している場合の経路の問題によるものです)。
1)rewrite_psyche_data.conf
の場合は
Options FollowSymLinks
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /#/$1 [L]
...私は生のHTMLのように見えて、 "予期しないトークン:<"というコンソールエラーが表示されます。エラーをクリックすると、JSファイル自体がHTMLで埋められます。
---------------------> 8 --------------------
2)rewrite_psyche_data.conf
は、次のようになりますとき:
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]
...私は、ルートURL(ローカルホストでインデックスページ自体に404エラーが表示されます。私は、実行時に8000) コマンドは失敗していないようですそれ:
$ mod_wsgi-express start-server run_apache_server.wsgi --rewrite-rules rewri_psyche_data.conf
Server URL : http://localhost:8000/
Server Root : /tmp/mod_wsgi-localhost:8000:503
Server Conf : /tmp/mod_wsgi-localhost:8000:503/httpd.conf
Error Log File : /tmp/mod_wsgi-localhost:8000:503/error_log (warn)
Rewrite Rules : /Users/Jakob/Desktop/dev_projects/psyche_data_master/rewrite_psyche_data.conf
Request Capacity : 5 (1 process * 5 threads)
Request Timeout : 60 (seconds)
Startup Timeout : 15 (seconds)
Queue Backlog : 100 (connections)
Queue Timeout : 45 (seconds)
Server Capacity : 20 (event/worker), 20 (prefork)
Server Backlog : 500 (connections)
Locale Setting : en_US.UTF-8
...これらの2行は、エラーログファイルに表示されます。
[Mon May 22 21:17:00.788635 2017] [mpm_event:notice] [pid 12005:tid 140735965213632] AH00489: Apache/2.4.23 (Unix) mod_wsgi/4.5.15 Python/2.7 configured -- resuming normal operations
[Mon May 22 21:17:00.789013 2017] [core:notice] [pid 12005:tid 140735965213632] AH00094: Command line: 'httpd (mod_wsgi-express) -f /tmp/mod_wsgi-localhost:8000:503/httpd.conf -D MOD_WSGI_MPM_ENABLE_EVENT_MODULE -D MOD_WSGI_MPM_EXISTS_EVENT_MODULE -D MOD_WSGI_MPM_EXISTS_WORKER_MODULE -D MOD_WSGI_MPM_EXISTS_PREFORK_MODULE -D FOREGROUND'
--------------------- 8 --------------------私はこれを実行すると
3)、アプリは動作しますが、私は404エラー私は、角ルーティングによって生成されたURLのいずれかをリフレッシュする任意の時間を取得:
$ mod_wsgi-express start-server run_apache_server.wsgi
が、私は他の何かをやるべき
その--rewrite-rules
--include-file
が好き?
mod_wsgi-expressによって静的ファイルに使用されるディレクトリに静的ファイルを置く場合は、書き換えルールを必要とすべきではありません。どこかのディレクトリにすでに静的ファイルがある場合は、単に '--document-root''オプションを使用して、それらがどこにあるかを指定するだけです。 –
'--document-root'はプロジェクトルートを指す' sys.path.insert'を使用して無用にしていると思います – JacobIRR
'' --document-root''はPythonコードとは関係がありません。静的ファイルを含むディレクトリです。あなたが言及した最初の書き換えルールは、デフォルトで既に '' mod_wsgi-express''によって使われています。ルールは、ディレクトリ内の静的ファイル( '' --document-root''で指定されたもの)とURLが一致すると、静的ファイルが提供されるようにします。 URLが静的ファイルと一致しない場合、要求は処理する代わりにPython WSGIアプリケーションに渡されます。 –