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>

0

Решение

Вам также необходимо настроить application_readable: true в дополнение к объявлению статического файла в вашем app.yaml файл.

От Элемент обработчиков:

application_readable

Необязательный. Boolean. По умолчанию файлы объявлены в статических обработчиках файлов
загружаются как статические данные и предоставляются только конечным пользователям. Oни
не может быть прочитано приложением. Если для этого поля установлено значение true,
файлы также загружаются в виде данных кода, чтобы ваше приложение могло читать
их. Обе загрузки оплачиваются по вашему коду и статическим данным.
место хранения квоты на ресурсы.

3

Другие решения

Других решений пока нет …