私はこの構造を持つWebアプリケーションを持っています:
|
|__ static
|__style.less
|__images
|__ myapp.py
|__ wsgi.py
私はなんとかnginxとwsgiを使用してWebアプリケーションを実行しましたが、問題は静的ファイルが提供されないことです。つまり、サーバーがURLにアクセスしてもそれらを見つけることができません。 404になります。
これが私のnginx設定ファイルの部分です:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /var/www/public_html;
index index.php index.html index.htm;
server_name xxxxxxx.com;
location / {
try_files $uri $uri/ =404;
}
location /myapp {
include uwsgi_params;
uwsgi_pass unix:/var/www/public_html/myapp/myapp.sock;
}
不足しているものはありますか?
これをnginx設定に追加します
location ^~ /static/ {
include /etc/nginx/mime.types;
root /project_path/;
}
/project_path/
をアプリの絶対パスで置き換えます。これは静的ディレクトリを含まないであり、/project_path/static/
内のすべてのコンテンツがサーバーで処理されることに注意してくださいURL /static/
。
から Flask Webアプリケーション)用にNGINXを構成する方法
私はこの解決策がより良いことを発見しました:
location /static {
alias /<path to project>/static;
}
置換<path to project>
はもちろん、プロジェクトのディレクトリです。
このソリューションでは、static
がパスに含まれていることに注意してください。これは本当にセキュリティに良いです!アプリケーションのソースファイルを誤って提供するリスクが軽減されます。デフォルトではflaskはソースファイルを<path to project>
および構成の小さなミスにより、これらのソースファイルが攻撃者に表示される可能性があります。