Обслуживание статических файлов через cdn с использованием расширений Flask-assets и Flask-cdn без локальной копии статического каталога
Я хочу обслуживать свои статические файлы, используя хранилища Google. Я успешно достиг своей цели, используя следующие настройки:
Вот моя структура приложения:
config.py
app|
|static|
|assets|
|js
|css
|images
|templates
|__init__.py
init.py:
from flask_assets import Environment, Bundle
import flask_cdn import CDN
bundles = {
...
}
app = Flask(__name__)
assets = Environment(app)
assets.register(bundles)
CDN(app)
...
config.py:
...
CDN_DOMAIN = "storage.googleapis.com/my-bucket"
CDN_HTTPS = True
FLASK_ASSETS_USE_CDN = True
Используя выше, все мои изображения, CSS, JS файлы правильно указывают на ведро.
Вот мой вопрос: выше работает, только если есть также локальная (локальная для экземпляра) копия статического каталога (static/assets/js, css, ...) . Я не хочу хранить локальную копию. Я хочу иметь централизованную статическую папку (в хранилищах Google), чтобы все мои экземпляры могли использовать статический ресурс.
Под экземпляром я имею в виду экземпляр вычислительного движка.
Вот часть ошибки, которую я получаю:
File ".../mysite/local/lib/python2.7/site-packages/webassets/merge.py", line 77, in data
f = open(self.filename, 'r', encoding='utf-8')
IOError: [Errno 2] No such file or directory: '/var/www/html/mysite/appk/static/assets/css/a.css'
Таким образом, по сути, когда я удаляю содержимое папки активов, url_for CDN больше не работает должным образом.