Обслуживание статических файлов через 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 больше не работает должным образом.

0 ответов

Другие вопросы по тегам