使用 comanche 提供静态文件
我曾经使用此代码从 Pharo 1.2 图像中的 Comanche Web 服务器提供静态文件:
createService | contentPath dirPath svc ma | contentPath := 'htdocs'. dirPath := FileDirectory default fullNameFor: contentPath. svc := (HttpService on: self port) name: 'seaside-' , self port greaseString. ma := ModuleAssembly core. ma alias: '/static' to: [ ma serverRoot: dirPath. ma documentRoot: dirPath. ma directoryIndex: 'index.html index.htm'. ma serveFiles ]. ma addPlug: self. svc plug: ma rootModule. ^ svc
代码来自 http://samadhiweb.com/blog/2011.07.10.seaside.comanche.staticfiles.html
不幸的是,这在 Pharo 1.3 上不再起作用。 ModuleAssembly 类不再存在。那么如何设置 comanche 来提供静态文件呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
确保您已加载完整的 Komanche。准备好的 Seaside 图像使用
KomHttpServerLight
,它只包含 Seaside 所需的最低限度的 Web 服务器功能。要获得完整的内容,您需要加载DynamicBindings
、KomServices
、KomHttpServer
以及其他依赖项。Make sure that you have the full Komanche loaded. The prepared Seaside images use
KomHttpServerLight
which just contains the bare minimum web-server functionality Seaside requires. To get the full thing you need to loadDynamicBindings
,KomServices
,KomHttpServer
, and maybe other dependencies.如果您在该映像中运行 Seaside,另一个选择是从 Seaside30LGPL 存储库加载 Seaside-Filesystem 包。然后,您可以设置一个“外部目录”处理程序来处理磁盘中的文件。
不过我们仅将其用于开发,因此我不知道它在部署中的性能。
If you are running Seaside in that image, another option is to load the Seaside-Filesystem package from the Seaside30LGPL repository. You can then setup an 'external directory' handler that servers files from the disk.
We use this only for development though, so I do not know about its performance in deployment.