Я сталкиваюсь с проблемой, когда моя веб-страница теряет все стили CSS в CakePHP.
Это происходит, когда пользователь пытается вернуться на предыдущую страницу при нажатии на стрелку назад в браузере.
Кажется, CakePHP не может перезагрузить все стили CSS и JS.
Когда пользователь получает доступ к любой странице по ссылкам внутри сети, все стили, установленные в default.ctp, работают нормально.
Смотрите мой default.ctp:
echo $this->Html->css('bootstrap');
echo $this->Html->css('jquery-ui.min');
echo $this->Html->css('http://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css');
echo $this->Html->css('http://fonts.googleapis.com/css?family=Righteous');
echo $this->Html->css('jquery.fancybox');
echo $this->Html->css('fullcalendar');
echo $this->Html->css('xcharts.min');
echo $this->Html->css('select2');
echo $this->Html->css('style');
echo $this->Html->css('jquery.dataTables');
echo $this->fetch('meta');
echo $this->fetch('css');
echo $this->Html->script('jquery-2.1.0.min.js');
echo $this->Html->script('ChartNew.js');
echo $this->Html->script('jquery-ui.min.js');
echo $this->Html->script('bootstrap.min.js');
echo $this->Html->script('jquery.justifiedgallery.min.js');
echo $this->Html->script('tinymce.min.js');
echo $this->Html->script('jquery.tinymce.min.js');
echo $this->Html->script('devoops.js');
echo $this->Html->script('jquery.dataTables.js');echo $this->fetch('script');
Но я думаю, что это не настоящая проблема, так как она работает нормально, если к странице обращаются по ссылкам, не возвращаясь к истории, сохраненной в браузере.
Есть ли что-то, что я должен сделать, поэтому CakePHP нужно перезагрузить все стили снова?
У меня есть эта проблема, потому что мои веб-страницы будут доступны для платных клиентов, и мне нужно решить эту проблему.
Если мне нужно сообщить какую-либо дополнительную информацию, пожалуйста, сообщите мне.
Эта проблема возникает на всех страницах без исключения.
ОБНОВЛЕНИЕ ИНФОРМАЦИИ
Я думал, что это может быть любая проблема внутри .htaccess, что файлы CSS и JS не перезагружаются.
Просто добавьте информацию о том, как установлены эти три файла .htaccess:
Корневая директория:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
Внутри приложения / каталога:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L]
</IfModule>
Внутри каталога app / webroot:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
Я нашел симптом этой проблемы. По какой-то причине CakePHP не может кэшировать макет каждый раз, когда я пытаюсь вернуться на ранее посещенную страницу. Чтобы решить мою проблему, я включил эту строку:
$this->disableCache();
Эта строка была включена внутри beforeFilter()
функция в AppController
, Теперь все работает правильно и CSS & Файлы JS снова загружаются.
Это самое близкое решение, которое я нашел. Более 5 дней съемки в темноте, чтобы найти это.
Других решений пока нет …