我有一个搜索结果页,当用户点击结果时,然后点击后退按钮,我希望它从缓存加载搜索结果而不是去服务器,有点像谷歌这样做。我发送HTTP标头:
Date: Thu, 23 Jun 2016 18:53:05 GMT
Server: WSGIServer/0.1 Python/2.7.9
Vary: Cookie
Last-Modified: Wed, 22 Jun 2016 00:00:00 GMT
ETag: a
Cache-Control: public, max-age=300
X-Frame-Options: SAMEORIGIN
Content-Type: text/html; charset=utf-8
但是当我使用后退按钮导航回结果时,它从服务器检索页面,在这种情况下,它是在我的笔记本电脑上运行的开发Django服务器。
答案 0 :(得分:0)
你试过.htaccess吗? 在.htaccess中设置Expires和Cache-Control可以解决这个问题。 失效:
<ifModule mod_headers.c>
<filesMatch "\.(ico|jpe?g|png|gif|swf)$">
Header set Cache-Control "public"
</filesMatch>
<filesMatch "\.(css)$">
Header set Cache-Control "public"
</filesMatch>
<filesMatch "\.(js)$">
Header set Cache-Control "private"
</filesMatch>
<filesMatch "\.(x?html?|php)$">
Header set Cache-Control "private, must-revalidate"
</filesMatch>
</ifModule>
和缓存控制:
import React from 'react';
require('./Headings.css');
let HeadingMixin = HeadingComponent => class extends React.Component {
constructor(props){
super(props)
}
render() {
return <HeadingComponent {...this.props} />
}
}
function Heading(props){
return (<h1 className={`${props.type}Heading`}>{props.text}</h1>)
}
Heading.propTypes = {
text: React.PropTypes.oneOfType([
React.PropTypes.string,
React.PropTypes.element,
]),
type: React.PropTypes.oneOf(['page', 'modal', 'sub', 'section']).isRequired,
}
export default Heading;