cloud - 我们如何部署 Pharo seaside web 应用程序?
问题描述
我知道在 Entreprise Pharo 一书中有一个很好的解释,用于在 Linux 服务器上进行部署生产。我按照教程进行操作,并且能够部署相同的项目。然而,该项目仅包含一个简单的类“MyFirstWebApp”,不包括 Seaside 框架。运行脚本如下:
ZnServer defaultOn: 8080.
ZnServer default logToStandardOutput.
ZnServer default delegate
map: 'image'
to: MyFirstWebApp new;
map: 'redirect-to-image'
to: [ :request | ZnResponse redirect: 'image' ];
map: '/'
to: 'redirect-to-image'.
ZnServer default start
.
如果您有一个使用 Seaside 框架的包含许多类的项目怎么办?我对自己的 Seaside 项目重复了相同的过程,但是WARequestContextNotFound
当我使用以下命令启动 run.st 脚本时收到消息错误./pharo myapp.image run.st
。任何想法?
解决方案
您正在混合使用纯 Zinc 服务器委托和处理 Seaside 应用程序。Zinc 为 Seaside 提供了一个“服务器适配器”,可以使用ZnZincServerAdaptor startOn: 8080
(或您选择的任何端口)进行设置。
如果您想运行 Seaside Web 应用程序,您必须部署一个安装了 Seaside 框架的图像,以及您自己的类(MyFirstWebApp
和朋友)。
所以你run.st
看起来更像:
ZnZincServerAdaptor startOn: 8080.
ZnZincServerAdaptor default server debugMode: true.
ZnServer default logToStandardOutput.
"Here you register the Seaside application _class_"
(WAAdmin register: MyFirstWebApp asApplicationAt: 'image')
preferenceAt: #serverPath put: '/'.
WAAdmin defaultDispatcher defaultName: 'image'.
推荐阅读
- r - 如何使用 R 对复杂函数进行符号微分
- php - 如何将 php 变量传递到另一个页面而不将其重定向到该页面?
- php - 如何解决:在为访问令牌交换授权代码时,已批准的应用程序得到“客户端身份验证失败” - 仅在服务器上
- reactjs - 将数组传递给道具以创建多个盒子阴影
- prometheus - Prometheus 几分钟后会自动删除警报
- javascript - 如何修复 Angular 6 通用 server.js 中的“ReferenceError:未定义窗口”错误
- android - Android中的MVVM存储库
- c# - 如何连接json值?
- web - AUTOML有没有办法通过阅读代码来学习遗留系统来定制未来的变化
- .htaccess - 如何将 htaccess 修复为友好的 url