Я создаю прототип веб-сайта, который будет использовать кеш автономного приложения HTML5 для определенных целей. Веб-сайт будет создан с помощью Python и Flask, и именно отсюда возникает моя главная проблема: я работаю с этими двумя впервые, поэтому мне трудно заставить файл манифеста работать должным образом.
Проблема в том, что я получаю 404 из статических файлов, включенных в файл манифеста. Сам манифест вроде скачивается правильно, а вот файлы на которые он указывает нет. Вот что выплёвывает в консоль при загрузке страницы:
Creating Application Cache with manifest http://127.0.0.1:5000/static/manifest.appcache offline-app:1
Application Cache Checking event offline-app:1
Application Cache Downloading event offline-app:1
Application Cache Progress event (0 of 2) http://127.0.0.1:5000/style.css offline-app:1
Application Cache Error event: Resource fetch failed (404) http://127.0.0.1:5000/style.css
Ошибка в последней строке.
Когда appcache дает сбой даже один раз, он полностью останавливает процесс, и автономный кеш не работает.
Вот как устроены мои файлы:
- sandbox
- offline-app
- offline-app.py
- static
- manifest.appcache
- script.js
- стиль.css
- templates
- offline-app.html
- offline-app
Это содержимое offline-app.py:
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/offline-app')
def offline_app():
return render_template('offline-app.html')
if __name__ == '__main__':
app.run(host='0.0.0.0', debug=True)
Вот что у меня есть в offline-app.html:
<!DOCTYPE html>
<html manifest="{{ url_for('static', filename='manifest.appcache') }}">
<head>
<title>Offline App Sandbox - main page</title>
</head>
<body>
<h1>Welcome to the main page for the Offline App Sandbox!</h1>
<p>Some placeholder text</p>
</body>
</html>
Это мой файл manifest.appcache:
CACHE MANIFEST
/style.css
/script.js
Я пробовал использовать файл манифеста всеми возможными способами:
CACHE MANIFEST
/static/style.css
/static/script.js
or
CACHE MANIFEST
/offline-app/static/style.css
/offline-app/static/script.js
Ни один из них не работал. Каждый раз возвращалась одна и та же ошибка.
Я уверен, что проблема здесь в том, как сервер обслуживает файлы, перечисленные в манифесте. Наверное, эти файлы ищут не в том месте. Я либо должен разместить их где-то еще, либо мне нужно что-то другое в манифесте кеша, но я понятия не имею, что. Я не смог найти ничего в Интернете об автономных приложениях HTML5 с Flask.
Кто-нибудь может мне помочь?