app引擎(python)是否可以将多个静态目录指向一个url?在我的app.yaml文件中,我希望做类似的事情:
ATTEMPT 1:
- url: /media/
static_dir: static/.*
ATTEMPT 2:
- url: /media/
static_dir: static/dir1
- url: /media/
static_dir: static/dir2
尝试3:
- url: /media/
static_dir: static/dir1
static_dir: static/dir2
使用任何符号(。*)会导致两个目录都无法正常工作。尝试2中的多重声明导致仅忽略第一个工作(dir1)和第二个工作(dir2)。当我尝试运行引擎并允许它在本地运行时,尝试3会发出警告。
如何在不更改每个新静态目录的URL的情况下执行此操作?
答案 0 :(得分:2)
这是不可能的。但你可以使用/media-1 / img.jpg,/ media-2 / bla.jpg等链接。
- url: /media-(.*?)/(.*)
static_files: static/dir\1/\2
upload: static/(.*?)/(.*)
更多信息docs。
我认为唯一的出路是使用简单的构建脚本,它将所有图像从/ static / dir1和/ static / dir2复制到媒体中。您也可以使用此脚本进行一键式部署。像这样:
import os, glob
source = ['static/dir-1', 'static/dir-2']
dest = 'media'
for s in source:
for f in glob.glob(os.path.join(s, '*.*')):
shutil.copy(f, dest)
答案 1 :(得分:1)
假设您只是希望“静态”下的所有内容通过“/ media”提供,它应该可以正常工作:
- url: /media
static_dir: static
编辑 - 在我写这篇文章的时候,这里使用了这个确切的配置: https://imaginaryboy.appspot.com/media/dir1/text.txt