我有一个活动,它的布局包含一个FrameLayout.我使用framelayout作为片段容器.我使用FragmentManager事务替换FrameLayout中的片段.
在其中一个片段的onCreate方法中,我使用EventBus注册片段.
@Override
public void onCreate(){
EventBus.getDefault().register(this);
// other initialization code
}
Run Code Online (Sandbox Code Playgroud)
该片段在其布局中具有GridView.每当点击gridView中的项目时,我都会向EventBus发布一个事件
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState){
View rootView = inflater.inflate(R.layout.fragment_category, container, false);
gridView = (GridView) rootView.findViewById(R.id.categry_grid_view);
gridAdapter = new CustomGridAdapter(getActivity());
gridView.setAdapter(gridAdapter);
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
Category clickedCategory = gridAdapter.getItem(position);
EventBus.getDefault().post(new MyEvent());
}
});
Run Code Online (Sandbox Code Playgroud)
此事件的事件处理程序方法位于同一片段中,即片段具有以下方法
public void onEvent(MyEvent e){
//some code;
}
Run Code Online (Sandbox Code Playgroud)
这可以正常工作,直到应用程序失去焦点并变为非活动状态(由于按下主页按钮或屏幕锁定).当我再次激活应用程序时,不会调用事件的事件处理程序.我可以在LogCat中看到以下语句
com.example.app D/Event? No subscribers registered for event class com.example.app.MyEvent
com.example.app D/Event? No subscribers …
Run Code Online (Sandbox Code Playgroud) 我开发了一个 Web 应用程序,它使用 Nextjs 应用程序作为前端和一个 Python (Django) API 服务器作为后端。我的大多数前端页面都有对后端服务器的 API 调用(在 ComponentDidMount 中或响应用户操作,如按钮点击)。
我想将此应用程序部署到我的服务器。我使用 Nginx 作为反向代理。后端部署已排序。我对部署 nextjs 应用程序感到困惑。
阅读文档后,我认为有两种方法可以做到这一点:
next build
然后next start
。这将在端口 3000 上启动一个 nodejs 服务器。我可以使用 nginx 将流量引导到这个端口。next export
。这将生成一个out
目录。我可以使用像 Nginx 这样的反向代理将传入流量引导到这个目录。我应该使用这两个选项中的哪一个?有什么区别?
我有一个带装饰器的ES6课程.它有一个静态方法foo.但是,当我尝试访问静态方法时,其未定义.
@withStyles(styles)
class MyComponent extends Component {
static foo(){
return "FOO";
}
render(){
var x = MyComponent.foo; // x=undefined
}
}
Run Code Online (Sandbox Code Playgroud)
当我删除装饰器时,我可以访问静态方法.它不再是未定义的.
class MyComponent extends Component {
static foo(){
return "FOO";
}
render(){
var x = MyComponent.foo; // x=foo()
}
}
Run Code Online (Sandbox Code Playgroud)
这个问题有解决方法吗?
我正在使用Whitenoise在我的 Django 应用程序中提供静态文件。我没有使用 Nginx。我计划将来在像 Cloudfront 这样的 CDN 后面使用 Whitenoise。请参阅白噪声常见问题解答。
我一直在寻找处理这些问题的部署说明:
由于我没有使用nginx,我打算将gunicorn直接绑定到80端口。这会导致错误 - Permission Denied
。我可以以 root 身份运行 gunicorn,但这似乎是一个糟糕的方法。
如何处理 SSL 证书的东西?通常这是由 Nginx 之类的服务器处理的。
编辑:我正在Google Cloud Compute Engine上的Ubuntu 18.04 VM上部署我的应用程序。
PS:我的网站不会是一个非常高流量的网站。其他人已使用此配置为高流量的网站提供服务。请参阅从 Heroku 上的 Django 应用程序中榨取每一滴性能。
android ×2
deployment ×2
django ×1
ecmascript-7 ×1
gunicorn ×1
javascript ×1
next.js ×1
reactjs ×1
searchview ×1
whitenoise ×1