我的项目中有一些静态页面,我希望能够不时更改并且不要重新启动服务器以应用更改。
如果import { Directive, ElementRef, Renderer } from '@angular/core';
import { NavController } from 'ionic-angular';
@Directive({
selector: '[header-shrink]',
host: {
'(ionScroll)': 'onContentScroll($event)'
}
})
export class HeaderShrink {
header: any;
headerHeight: any;
translateAmt: any;
scrollPosition: number = 0;
lastScrollTop: number = 0;
activePage: any;
constructor(public navCtrl: NavController, public element: ElementRef, public renderer: Renderer) { }
ngAfterViewInit() {
this.activePage = this.navCtrl.getActive()._cmp; // get current active page
// ion-header classname
this.header = this.activePage._nativeElement.getElementsByClassName("shrinkable")[0];
// the height of the header
this.headerHeight = this.header.clientHeight;
}
onContentScroll(ev) {
ev.domWrite(() => {
this.updateHeader(ev);
});
}
updateHeader(ev) {
this.scrollPosition = ev.scrollTop;
if (this.scrollPosition > this.lastScrollTop && this.scrollPosition >= 25) {
// scrolling down
this.renderer.setElementStyle(this.header, 'transition', 'all 0.3s linear');
this.renderer.setElementStyle(this.header, 'transform', 'translateY(-' + this.headerHeight + 'px)');
} else {
// scrolling up
this.renderer.setElementStyle(this.header, 'transform', 'translateY(0px)');
}
// reset
this.lastScrollTop = this.scrollPosition;
}
}
设置为true,这样做的正确方法是什么?
答案 0 :(得分:1)
使用方法cache_store,您应该可以设置 ActiveSupport::Cache::NullStore
因此,在您的控制器中,您可以使用以下内容:
class ProductsController < ApplicationController
config.cache_store = :null_store
end
注意:我没有测试过此代码,但它应该为您提供指导。
编辑由于您正在使用部分内容,因此您可以通过将caches_page :new
设置为仅缓存新操作或将缓存目录设置为{{}来使用actionpack-page_caching。 {1}}使用:
/dev/null
由于它是一个静态内容,我也没有看到在这些页面上创建缓存的任何麻烦,但你是最好的老板!
答案 1 :(得分:0)
我发现自己使用标准IO库从本地文件中读取HTML代码并通过render
方法呈现它。因为它是静态页面,所以我不需要在里面执行任何rails代码。它对我有用,不了解性能,但应该没问题我认为=)
答案 2 :(得分:-1)
两个选项:
修改缓存的密钥以使其过期。
调用Rails.cache.clear以清除所有缓存,这是最快的解决方案但是注意,它会清除所有缓存