Flask & uwsgi 不渲染静态文件夹中的文件
Flask & uwsgi not rendering files from static folder
我正在关注 this tutorial,一切顺利,但应用程序未呈现静态文件夹中的文件(css、图像、脚本等)。
我已授予该文件夹 (sudo chmod a+rwx static) 和子文件夹的所有权限,但仍然无法呈现。
我使用的代码是以前使用几乎相同配置的代码(Ubuntu 18.04 当天回来)
app = Flask(__name__,static_url_path='',static_folder="static")
还有我的 nginx 配置文件:
location / {
include uwsgi_params;
uwsgi_pass unix:/home/sydney/ecocathlon/ecocathlon.sock;
}
location /static {
root /home/sydney/ecocathlon/static;
}
关于我如何允许程序访问该文件夹,您有什么想法吗?
提前致谢,
悉尼
如果您可以使用 wsgi 提供文件,请检查 whitenoise
如果需要,以后迁移到 CDN 也很简单。
使用alias
代替root
:
location /static {
alias /home/sydney/ecocathlon/static;
}
基于 .
此外,我会将 static_url_path
排除在您的应用程序定义之外,并且 static_folder
因为您只是将其设置为默认值:
app = Flask(__name__)
static_url_path
控制应用程序如何生成静态文件的 URL,因此您可以通过将其设置为空字符串来强制它生成类似 /something.js
而不是 /static/something.js
的链接.
通过使用
static_url_path=''
而不是默认值
static_url_path=None
您是在告诉 Flask 静态资源将位于 /
而不是 /static
。这将混淆使用
的尝试
location /static {
因为没有/static
url路径。但如果你尝试过
location / {
请求永远不会到达您应用的主页。
删除 static_url_path=''
(并保留 location /static
)或为解析为您希望 nginx 直接服务器上的文件的每个路由指定单独的位置。
我正在关注 this tutorial,一切顺利,但应用程序未呈现静态文件夹中的文件(css、图像、脚本等)。
我已授予该文件夹 (sudo chmod a+rwx static) 和子文件夹的所有权限,但仍然无法呈现。
我使用的代码是以前使用几乎相同配置的代码(Ubuntu 18.04 当天回来)
app = Flask(__name__,static_url_path='',static_folder="static")
还有我的 nginx 配置文件:
location / {
include uwsgi_params;
uwsgi_pass unix:/home/sydney/ecocathlon/ecocathlon.sock;
}
location /static {
root /home/sydney/ecocathlon/static;
}
关于我如何允许程序访问该文件夹,您有什么想法吗?
提前致谢,
悉尼
如果您可以使用 wsgi 提供文件,请检查 whitenoise
如果需要,以后迁移到 CDN 也很简单。
使用alias
代替root
:
location /static {
alias /home/sydney/ecocathlon/static;
}
基于
此外,我会将 static_url_path
排除在您的应用程序定义之外,并且 static_folder
因为您只是将其设置为默认值:
app = Flask(__name__)
static_url_path
控制应用程序如何生成静态文件的 URL,因此您可以通过将其设置为空字符串来强制它生成类似 /something.js
而不是 /static/something.js
的链接.
通过使用
static_url_path=''
而不是默认值
static_url_path=None
您是在告诉 Flask 静态资源将位于 /
而不是 /static
。这将混淆使用
location /static {
因为没有/static
url路径。但如果你尝试过
location / {
请求永远不会到达您应用的主页。
删除 static_url_path=''
(并保留 location /static
)或为解析为您希望 nginx 直接服务器上的文件的每个路由指定单独的位置。