GAE: file_get_contents() и статические файлы
Вместо обновления одной и той же переменной в разных местах я анализирую файлы и извлекаю нужные мне биты. Один бит, который я ищу, - это имя кэша в моем файле service-worker.js. Когда я занимаюсь локальной разработкой, я могу легко получить файл js в структуре каталогов.
Когда я развертываю свое приложение в GAE, JS-файл сервисного работника должен быть объявлен статическим, поэтому GAE где-то скрывает его.
Есть ли способ попасть в этот файл без URL-вызова?
Это то, что я сейчас использую, и все это прекрасно работает в DEV:
<?php
function getCacheId() {
$cache_id = "";
$c = file_get_contents ( dirname ( __FILE__ ) . "/service-worker.js" );
if (preg_match ( "/CACHE_NAME = '(.*)'/", $c, $matches ) !== false) {
if (count ( $matches )) {
$cache_id = trim ( $matches[1] );
}
}
return $cache_id;
}
?>
<script>
const CACHEID = "<?php echo getCacheId() ?>";
</script>
1 ответ
Вам также необходимо настроить application_readable: true
в дополнение к объявлению статического файла в вашем app.yaml
файл.
application_readable
Необязательный. Boolean. По умолчанию файлы, объявленные в статических обработчиках файлов, загружаются как статические данные и предоставляются только конечным пользователям. Они не могут быть прочитаны приложением. Если для этого поля установлено значение true, файлы также загружаются в виде данных кода, чтобы приложение могло их прочитать. Обе загрузки оплачиваются по вашему коду и квотам на ресурсы хранения статических данных.