Ho risolto con questo codice
procedure TTFPWebModule1.DataModuleRequest(Sender: TObject; ARequest: TRequest;
AResponse: TResponse; Var Handled: Boolean);
var
url: string;
fine_nome_file: integer;
f: TFileStream;
estensione: string;
ret: boolean;
begin
ret:=false;
url := stringReplace(ARequest.URL, '/', System.DirectorySeparator, [RfReplaceAll]);
if trim(url)<>'' then
begin
url := '/Users/francesco/Documents/sw/cgi2test' + url;
fine_nome_file:=Pos('?',url);
if fine_nome_file>0 then
begin
url:=Copy(url,1,fine_nome_file-1);
end;
end;
if FileExists(url) then
begin
writeln('trovato:' + url);
f := TFileStream.Create(url,fmOpenRead);
try
AResponse.Code:=200;
AResponse.FreeContentStream := False;
estensione:=ExtractFileExt(url);
if uppercase(estensione) = '.CSS' then
AResponse.ContentType := 'text/css;charset=utf-8'
else
AResponse.ContentType := 'text/html;charset=utf-8'; // 'application/octet-stream'; //<--questo commentato serve per mandare file al browser
AResponse.ContentStream := f;
AResponse.SendContent;
ret:=true;
finally
f.Free;
end;
end else begin
writeln('non trovato:' + url);
end;
ret:=true;
Handled:=ret;
end;
Praticamente sbagliavo il ContentType che per i file css doveva essere specificato diversamente. Una caxxata insomma. Bhe se apportate le modifiche all'esempio avrete anche voi un mini web server embedded per fare le vostre web application.