NoteSeasideStaticDocuments

Static documents like images or cascading stylesheets can be stored inside a repository object inside the image. They can be delivered via

processHttpRequest: aRequest
    (aRequest url endsWithAnyOf: #('.gif' '.jpg' '.htm' '.html' '.css'))
        ifTrue: [
            | img |
            img := StaticDocumentsRepository at: aRequest url allButFirst ifAbsent: [^ nil] .
            ^HttpResponse fromStream: img readStream contentType: ''].
        ^self process: aRequest

inside a WAKom subclass. The methods

loadStaticDocuments
    Smalltalk at: #StaticDocumentsRepository put: Dictionary new.
    (FileDirectory on: (FileDirectory default fullPathFor: 'resources')) 
        fileNames do: [:fileName | 
            self loadStaticDocument: fileName]

loadStaticDocument: fileName
    | path |
    path := (FileDirectory default fullPathFor: 'resources') , FileDirectory slash , fileName.
    StaticDocumentsRepository 
        at: fileName 
        put: (FileStream readOnlyFileNamed: path) binary contentsOfEntireFile

load them into the repository.

last edited 2006-07-04 17:15:57 by FrankMueller