我以前使用此代码从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来提供静态文件呢?
答案 0 :(得分:2)
确保已加载完整的Komanche。准备好的Seaside图像使用KomHttpServerLight
,它只包含Seaside所需的最低网络服务器功能。要获得完整的内容,您需要加载DynamicBindings
,KomServices
,KomHttpServer
以及其他依赖项。
答案 1 :(得分:0)
如果您在该映像中运行Seaside,另一个选项是从Seaside30LGPL存储库加载Seaside-Filesystem包。然后,您可以设置一个“外部目录”处理程序,用于处理磁盘中的文件。
我们仅将它用于开发,因此我不知道它在部署中的性能。