使用comanche提供静态文件

时间:2011-09-15 19:05:39

标签: static smalltalk pharo httpserver

我以前使用此代码从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来提供静态文件呢?

2 个答案:

答案 0 :(得分:2)

确保已加载完整的Komanche。准备好的Seaside图像使用KomHttpServerLight,它只包含Seaside所需的最低网络服务器功能。要获得完整的内容,您需要加载DynamicBindingsKomServicesKomHttpServer以及其他依赖项。

答案 1 :(得分:0)

如果您在该映像中运行Seaside,另一个选项是从Seaside30LGPL存储库加载Seaside-Filesystem包。然后,您可以设置一个“外部目录”处理程序,用于处理磁盘中的文件。

我们仅将它用于开发,因此我不知道它在部署中的性能。