我在为flask管理页面提供静态文件时遇到问题。
admin = Admin(app, name='APPName', template_mode='bootstrap3')
app.config['FLASK_ADMIN_SWATCH'] = 'Slate'
一切似乎都在localhost上工作,但当我将应用程序上传到服务器(ubuntu(时,引导模板就不再工作了。Flask管理员到静态文件的路径是http://127.0.0.1:5000/admin/static/bootstrap/bootstrap3/swatch/Slate/bootstrap.min.css?v=3.3.5在localhost上。在服务器上https://domainname.com/admin/static/bootstrap/bootstrap3/swatch/Slate/bootstrap.min.css?v=3.3.5但返回错误404。谁能给我指对方向吗。
我知道这可能来得晚了,但这里:
解决方案
更改第二行:
admin = Admin(app, name='APPName', template_mode='bootstrap3')
app.config['FLASK_ADMIN_SWATCH'] = 'slate' # This line: 'Slate' to 'slate'
上下文
我遇到了和你一样的问题。在我的情况下,我的配置文件包含以下内容:
# Flask Config
FLASK_ADMIN_SWATCH: str = "Superhero"
在本地工作,但在部署到运行CentOS的EC2机器时没有,我得到了404。
我在本地运行Windows,在远程机器上运行Linux。我打赌你也一样。Windows不区分大小写,而Linux区分大小写。
将FLASK_ADMIN_SWATCH
变量设置为Slate
意味着到达烧瓶的路径类似于admin/static/bootstrap/bootstrap4/Slate/bootstrap.min.css?v=4.2.1
。这对Windows没有问题,但对Linux有问题。
Swatch主题位于flask_admin/static/bootstrap/bootstrapX/swatch/
中,每个主题都位于自己的文件夹中,并且都是小写的(例如:cerulean
、cosmo
等(。您的特定主题目录是flask_admin/static/bootstrap/bootstrapX/swatch/slate/
。
Windows将尝试解析bootstrap/bootstrap4/Slate/bootstrap.min.css?v=4.2.1
并成功,因为它不关心Slate
的大小写,但Linux关心,这就是它失败并最终返回404的原因。
# These paths are equivalent for Windows, but not for Linux.
bootstrap/bootstrap4/Slate/bootstrap.min.css?v=4.2.1
bootstrap/bootstrap4/slate/bootstrap.min.css?v=4.2.1