Rap*_* K. 4 static production-environment flask
通常,问题是如何在开发环境中提供静态文件,而在我的情况下则相反.所以我使用Apache和mod_wsgi部署了一个Flask应用程序,配置Apache在/ static url中提供我的静态文件.现在我不确定这些文件是由Apache还是由Flask提供,因为flask默认情况下也使用相同的静态路径.
在模板中,我使用url_for("static",filename ="style.css").它工作正常.但这是问题,因为我不知道什么是我的静态文件.当然,我可以肯定Apache正在服务,如果我改变每个模板以获得硬编码路径和不同于默认Flask的东西,但这听起来不是正确的解决方案.
总结一下我的问题:如何在Flask(模板)中使用url_for(静态)并确保Flask不为我提供服务?
谢谢,Rapolas K.
设置另一个静态文件夹(您还需要在文件系统上创建空文件夹):
app = Flask(__name__, static_url_path='static', static_folder='static_test')
Run Code Online (Sandbox Code Playgroud)
因此,如果你得到404然后文件服务由其他apache服务.
添加测试文件夹并映射apache和静态文件夹.
因此,如果您从测试文件夹中获取内容,那么由apache提供的文件就会烧掉.
打破任何static端点请求:
@app.before_request
def break_static():
if request.endpoint == 'static':
abort(404)
return None
Run Code Online (Sandbox Code Playgroud)
要么
class YourApp(Flask):
def send_static_file(self, filename):
abort(404)
Run Code Online (Sandbox Code Playgroud)
因此,如果你得到404然后由flaks服务的文件,否则apache.
但是如果你真的不确定的话,你就足以测试一下这个案例.如果apache配置不会改变,那么静态服务行为也不会改变.
| 归档时间: |
|
| 查看次数: |
3745 次 |
| 最近记录: |