app.yaml вызывает 404 для файлов JS / CSS в приложении CodeIgniter, размещенном в Google Cloud - PullRequest
0 голосов
/ 21 июня 2019

Я занимаюсь университетским проектом, и мне нужно развернуть приложение в облачной службе. Я использую CodeIgniter в качестве моей платформы и Google Cloud в качестве моего облачного сервиса. Приложение работало, когда я тестировал его на localhost, но когда я размещаю его в Google Cloud, я не могу связать страницы с Javascript / CSS / Images.

Когда я пытаюсь связать их, я получаю следующую ошибку: https://---.---.com/public/css/template.css net::ERR_ABORTED 404

Я пробовал многие решения CodeIgniter для этой ошибки, такие как изменение .htaccess, изменение структуры папок и использование помощников ссылок на ресурсы, но ни один из них никогда не работал, что наводило меня на мысль, что это проблема Google Cloud.

Способы, с которыми я пытался связать свой CSS:

    href="<?php echo base_url('css/template.css');?>"
    href="<?php echo base_url();?>public/css/template.css"
    href="<?php echo assets_url();?>css/template.css">

И многие другие варианты, такие как абсолютные URL.

Ни один из них не работал: https: //---.---.com/css/template.css https: //---.---.com/public/css/template.css

Моя структура папок следующая:

|-.htaccess
|-application/
|-public/
|-.htaccess
|-index.php
|-css/
|-js/
|-img/
|-system

Я получил эту структуру из третьего ответа на этот вопрос StackOverflow: Где я могу поместить файлы изображений, css, js и т. Д. В Codeigniter?

Файл корневого htaccess:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule  ^$ public/    [L]
RewriteRule  (.*) public/$1 [L]
</IfModule>

Публичный файл htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,L]
</IfModule>

Мой app-yaml выглядит следующим образом:

runtime: php72

handlers:
- url: .*
  script: auto

- url: /public/img
  static_dir: public/img

- url: /public/js
  static_dir: public/js

- url: /public/css
  static_dir: public/css

- url: /(.+\.(css|js))$
  static_files: assets/\1
  upload: assets/.+\.(css|js)$

Я думаю, что ошибка net::ERR_ABORTED 404 при попытке доступа к файлам в общей папке может быть связана с моим app.yaml. Это возможно? И если это так, какие изменения я должен внести в файл, чтобы облачный сервис мог получить к ним доступ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...