В новом проекте мы используем wp-super-cache (предпочтительный плагин клиента) для создания статических html-файлов для пользовательских типов контента. Но мы пытаемся выяснить, все ли кешируется правильно.
Это вопрос из двух частей.
1) Созданная нами тема использует шаблоны страниц для вывода json, который принимается через вызовы ajax. то есть. если вы нажмете на страницу: theurl.com/sample - вы получите чистый JSON. В то время как существует не-javascript версия каждой страницы и сообщения, Ajax управляет внешним видом этой темы. Мы удалили верхний и нижний колонтитулы в этих файлах, так что это чистый json, и мы пытаемся выяснить, как определить, кэшируется ли json. Теоретически данные будут кэшироваться, потому что технически это страница, обслуживаемая WordPress. Но как мы можем выяснить, кэшируется ли это?
2) Мы также используем плагин json api для обслуживания определенных почтовых данных. http://wordpress.org/extend/plugins/json-api/ Для этого примера, скажем, мы используем метод вывода плагина по умолчанию и попадаем на эту страницу: мой url.com/category/news?json=1 - делает Кто-нибудь знает, как мы можем проверить, если этот вывод кэшируется? Если он не кэшируется, каким методом это произойдет?
Похоже, в Интернете не так много информации об этом, поэтому в духе создания убедительных и оптимизированных сайтов WordPress помогите брату
WP Super Cache проверяет страницы вашего сайта WordPress на наличие некоторых HTML-тегов, прежде чем кэширует их.
Ваши страницы, скорее всего, не имеют
</html>
тега (общая проблема), в этом случае попробуйте добавить что-то вроде//</html>
этого - это обходной путь, и WP Super Cache должен генерировать кэшированные версии ваших страниц.Почему WP Super Cache делает это так? Видите, нет очевидного способа проверить, загружена ли страница только наполовину, чем проверить, все ли основные теги HTML существуют и правильно ли закрыты.
По словам Доннчи (разработчика WP Super Cache) : «Это остановит кэширование половины сгенерированных страниц».
источник
ПРИМЕЧАНИЕ БЕЗОПАСНОСТИ: Это (и другие решения) не должно использоваться, если у вас нет способа переопределить
Content-Type: text/html
заголовок, который WP Super Cache отправляет с соответствующимapplication/json
значением. Отправка JSON astext/html
приведет к тому, что браузер отобразит его как HTML, который потенциально может быть вектором XSS.Похоже, что это должно быть сделано на уровне сервера, так как WPSC не обеспечивает необходимые ловушки.
Вот как я это сделал. Это похоже на подход Ляна, но не требует непосредственной модификации плагина и имеет более точный шаблон регулярных выражений.
Если вы используете v2 API REST, вы должны использовать
REST_REQUEST
вместоJSON_REQUEST
.Было бы хорошо подписаться на 22 и # 79 на случай, если что-то изменится в WP Super Cache.
источник
XMLHttpRequest cannot load http://api.mywebsite.com/wp-json/wp/v2/posts. Origin http://mywebsite.com is not allowed by Access-Control-Allow-Origin.
как я могу это исправить?Access-Control-Allow-Origin
заголовок, чтобы разрешить перекрестный запрос. Я предполагаю, что кэшированные страницы не выводят этот заголовок.Я тоже столкнулся с этой проблемой. Я написал свой код для API. Когда типом ответа был XML, кеш работал. Но когда тип ответа был json, он не работал.
Мне понадобилось несколько часов, чтобы исправить эту ошибку.
Это работа для меня.
Просто обновите свой код, как мои изменения.
Это работает для меня сейчас.
источник
wp_cache_eof_tags
фильтр, а не изменять плагин напрямую.