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 файл.

Из элемента Handlers:

application_readable

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

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