AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Webbroker und mehrere Seiten unter localhost
Thema durchsuchen
Ansicht
Themen-Optionen

Webbroker und mehrere Seiten unter localhost

Ein Thema von Delbor · begonnen am 28. Sep 2015 · letzter Beitrag vom 29. Sep 2015
Antwort Antwort
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.196 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Webbroker und mehrere Seiten unter localhost

  Alt 29. Sep 2015, 10:06
Hi Olli73

Sorry, wenn ich erst jetzt antworte; gestern abend musste ich nochmal weg, und anschliessend wars zu spät.

Nun, ich hab gewissermassen das Pferd vom Schwanz her aufgezäumt und also folgendermassen begonnen:
  • Den Code im BeforeDispatch habe ich ausgeklammert und das Ding dann mal gestartet. Da ich beim Erstellen des Projektes Delphis Experten benutzt hatte, lässt sich der Server über einen Button und über einen zweiten der Standardbrowser starten. Angezeigt wird meine Index.html, und die Adresszeile enthält <http://localhost:8080/> Interessnt hier könnte vieleicht sein: der erste Teil zwischen dem beginnenden 'h' und dem letzten Slash steht nicht in der Adresszeile...
  • Auf dieser Seite befindet sich mein HTML-Menue mit mehreren Links, von denen zur Zeit nur einer funktioniert - die andern Seiten sind zwar geplant, aber noch nicht realisiert. Bislang hatte ich diesen Link angeklickt, mit dem Resultat, das ich schon weiter oben gepostet habe (die 3 Zeilen mit Backslash statt slash).
  • Heute habe ich diese Seite geschlossen, ohne den Server selbst zu beenden, und anschliessend genau das eingegeben, was in der Adresszeile steht, wenn ich den Browser per Code starte. Das Ergebnis war, dass mir Google sein Wissen über localhost zur Auswahl anbot...
  • Dasselbe habe ich mit einer erweiterten Adresse versucht (localhost/html/index), mit und ohne Endung => FireFox konnte den Server unter localhost nicht finden.
  • Allerdings hatte ich gestern mal den Spleen, meine Startseite in Index.htm umzubennenen, wie das halt so usus ist bei HTML-Startseiten. Darum habe ich auch mal den von mir ursprünglich vergebenen Namen an die Adresszeile angehängt wird aber die nach wie vor die Homeseite.

Wie das angehängte Webmodul-Jpeg zeigt, habe ich 6 Pageproducers auf dem Modul, von denen nur die 2 am rechten Rand zu Html-Seiten verweisen. Deren Propertys HTML-File weisen auf die entsprechenden Dateien im Ordner 'HTML' hin:
  • I:\DelphiXE8 Corner\DelphiXE8VclCorner\DelborWebserverXE8\Delbo rDataSnapServer\html\DynamicDelborHome.htm und
  • I:\DelphiXE8 Corner\DelphiXE8VclCorner\DelborWebserverXE8\Delbo rDataSnapServer\html\AufromantischerSpur1.htm
Die Seite <AufromantischerSpur> enthält HTML-Code, der auf diverse Photos verweist. Allerdings solchen, wie er in Filebasirten HTML-Seiten zu finden ist; ich müsste diese Bilder wohl mit Filestreams lesen und an den entsprechenden Contentstrream weitergeben, damt die Bilder auch angezeigt werden.
Allerdings definiert der CSS-Code auch diverse Boxen, die als Rahmen für diese Bilder fungieren: Wenn die Seite angezeigt würde, müsste ich diese Rahmen zu sehen kriegen.
Die beiden mittleren Pageproducers enthalten in ihren HTMLDoc-Propertis jeweils die den beiden oben genannten Seiten zugeordneten Css-Scripts.

Der Code der WebActionItems und der PageproducerHtmlTags:
Delphi-Quellcode:
procedure TWebModule1.WebModule1WebActHomeAction(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
  Response.Content := PageProducerHome.Content;
  Response.Content := Response.Content + PageProducerLogo.Content;
  Handled := True;
end;

procedure TWebModule1.WebModule1WebActRomanticeRoadAction(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
  Response.Content := PageProducerRomanticRR.Content;
  Response.Content := PageProducerRomanticRR.Content + PageProducerRomanticCSS.Content;
  Handled := True;
end;

procedure TWebModule1.PageProducerHomeHTMLTag(Sender: TObject; Tag: TTag;
  const TagString: string; TagParams: TStrings; var ReplaceText: string);
begin
  if TagString = 'DELBORHOMECSSthen
    ReplaceText := PageProducerHomeCSS.Content;
  if Tagstring = 'MENUEthen
    ReplaceText := PageProducerMenueCSS.Content;
end;

procedure TWebModule1.PageProducerRomanticRRHTMLTag(Sender: TObject; Tag: TTag;
  const TagString: string; TagParams: TStrings; var ReplaceText: string);
begin
  if TagString = 'ROMANTICSPURCSSthen
    ReplaceText := PageProducerRomanticCSS.Content;
  if Tagstring = 'MENUEthen
    ReplaceText := PageProducerMenueCSS.Content;
end;
Über die Eigenschaften geben dir die angehängten Jpegs Auskunft.
Zitat:
Sind die Backslashs (\) nur ein Tippfehler?
Eigentlich nicht - ich hab die Pfade von Hand eingetippt und spontan die Backslashes gewählt. Wenn ich mich richtig erinnere, war das unter DOS so. Dass ich deswegen einen Pfad falsch tippe, geschieht mir öfters...

Ich hoffe, deine Fragen genügend beantwortet zu haben.

Gruss
Delbor
Angehängte Grafiken
Dateityp: jpg Webmodul1.JPG (111,9 KB, 14x aufgerufen)
Dateityp: jpg ActionItems.JPG (30,2 KB, 11x aufgerufen)
Dateityp: jpg WebmodulAction0.JPG (32,4 KB, 11x aufgerufen)
Dateityp: jpg WebmodulAction1.JPG (34,0 KB, 11x aufgerufen)
Dateityp: jpg WebmodulAction2.JPG (33,8 KB, 12x aufgerufen)
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
793 Beiträge
 
#2

AW: Webbroker und mehrere Seiten unter localhost

  Alt 29. Sep 2015, 11:10
- Benutzt du nun ein WebModul oder ein "normales" Modul mit WebDispatcher-Komponente? Beides zusammen soll man wohl vermeiden (sieht auf den Screenshots aber danach aus).

- Backslash ist unter DOS+Windows. Im Web(-Browser) musst du wie unter Linux immer Slash verwenden.

- Ein Eintrag "/Auf romantischer Spur" (mit Leerzeichen) erleichtert im Web nicht gerade die Fehlersuche; beim Aufruf müsstest du die Leerzeichen ggf. durch %20 ersetzen.

- Manche Browser machen Probleme, wenn man "localhost:8080" aufruft, ein "http://localhost:8080" hilft dann aber i.d.R.

- Mit PageProducer habe ich keine Erfahrung. Ich würde an deiner Stelle, aber mal mit was Einfachem Testen, z.B. sowas:

Delphi-Quellcode:
procedure TWebModule1.WebModule1WebActRomanticeRoadAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
  Response.Content := 'Hallo Welt!';
  Handled := True;
end;
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.196 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Webbroker und mehrere Seiten unter localhost

  Alt 29. Sep 2015, 12:47
Hi Olli73

Zitat:
- Benutzt du nun ein WebModul oder ein "normales" Modul mit WebDispatcher-Komponente? Beides zusammen soll man wohl vermeiden (sieht auf den Screenshots aber danach aus).
Der Experte erstellt eine Anwendung <Webbroker mit Dtasnap> und setzt von sich aus eine Datasnap-Dispatcherkomponente auf das Webmodul. Daher gehe ich davon aus, dass das so kompatbel ist.

Zitat:
- Ein Eintrag "/Auf romantischer Spur" ...
Gerade wollte ich schreiben, dass der Dateiname keine Leerzeichen hat - zumindest zwischen den ersten beiden Worten nicht; den Rest müsste ich nachsehen...

Zitat:
- Manche Browser machen Probleme, wenn man "localhost:8080" aufruft, ein "http://localhost:8080" hilft dann aber i.d.R.
Der Feuerfuchs ergänzt das automatisch.

Zitat:
- Mit PageProducer habe ich keine Erfahrung. Ich würde an deiner Stelle, aber mal mit was Einfachem Testen, z.B. sowas:
Alles, was da mit den Pageproducern gescchieht, ist, dass deren Inhalt an die Antwort zugewiesen wird. Das hat die selbe Wirkung, wie der hartgecodete Inhalt aus den Dummy-Beispielen.

Die Frage bleibt also: Wieso wird im Browser zwar die Adresszeile auf die beschriebene komische Art aktualisiert, die Seite aber nicht angezeigt und das OnHtmlTag des ActionsItems nicht aufgerufen?

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
793 Beiträge
 
#4

AW: Webbroker und mehrere Seiten unter localhost

  Alt 29. Sep 2015, 13:43
Der Experte erstellt eine Anwendung <Webbroker mit Dtasnap> und setzt von sich aus eine Datasnap-Dispatcherkomponente auf das Webmodul. Daher gehe ich davon aus, dass das so kompatbel ist.
Verschiedene Aussagen in der Hilfe in dieser Art:

Zitat:
Wenn Sie ein Web-Modul einsetzen, fungiert dieses als Web-Dispatcher. Verwenden Sie dagegen ein vorhandenes Datenmodul, müssen Sie eine (einzelne) Dispatcher-Komponente (Web.HTTPApp.TWebDispatcher) zu diesem Modul hinzufügen. Der Dispatcher verwaltet eine Gruppe von Aktionselementen, in denen die Behandlung bestimmter Anforderungsbotschaften festgelegt ist. Wenn die Web-Anwendung ein Anforderungsobjekt und ein Antwortobjekt an den Dispatcher übergibt, ist dieser für die Weiterleitung der Anforderung zuständig.
Zitat:
Ihr Projekt kann nur einen Dispatcher enthalten. Dies kann entweder das Web-Modul sein, das bei der Erstellung des Projekts automatisch generiert wird, oder die TWebDispatcher-Komponente, die Sie einem Datenmodul hinzufügen, welches das Web-Modul ersetzen soll. Wenn während der Ausführung ein zweites Datenmodul erzeugt wird, das ebenfalls einen Dispatcher enthält, erzeugt die Web-Server-Anwendung einen Laufzeitfehler.
http://docwiki.embarcadero.com/RADSt...Web-Dispatcher
http://docwiki.embarcadero.com/RADSt.../Das_Web-Modul

Hätte ich jetzt anders gedeutet.

Zitat:
- Ein Eintrag "/Auf romantischer Spur" ...
Gerade wollte ich schreiben, dass der Dateiname keine Leerzeichen hat - zumindest zwischen den ersten beiden Worten nicht; den Rest müsste ich nachsehen..
Also in den Screenshots von deinen Actions sind definitiv Leerzeichen.

Der Feuerfuchs ergänzt das automatisch.
Und weil er korrekt damit umgehen kann, startet er eine Google-Suche, anstatt die Seite aufzurufen bzw. dies zumindest zu versuchen?

Alles, was da mit den Pageproducern gescchieht, ist, dass deren Inhalt an die Antwort zugewiesen wird. Das hat die selbe Wirkung, wie der hartgecodete Inhalt aus den Dummy-Beispielen.
Und du bist dir natürlich zu 100% Sicher, dass da kein Schrott ausgeliefert wird und der Browser nur deshalb nix anzeigt.

Alle Hochachtung! Mir passiert es öfters, dass ich z.B. ein ">" oder ein """ oder gar ein "</tag>" vergesse und deshalb die Seite nicht (richtig) funktioniert.

Die Frage bleibt also: Wieso wird im Browser zwar die Adresszeile auf die beschriebene komische Art aktualisiert, die Seite aber nicht angezeigt und das OnHtmlTag des ActionsItems nicht aufgerufen?
Passiert bei "http://localhost:8080/Auf%20romantischer%20Spur/" wirklich nichts?
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.196 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Webbroker und mehrere Seiten unter localhost

  Alt 29. Sep 2015, 14:33
Hi Olli73
Zitat:
Passiert bei "http://localhost:8080/Auf%20romantischer%20Spur/" wirklich nichts?
Habe ich gleich getestet - der Browser zeigt mir meine Homeseite an.

Zitat:
Und du bist dir natürlich zu 100% Sicher, dass da kein Schrott ausgeliefert wird und der Browser nur deshalb nix anzeigt.
Ja... Zumindest erinnere ich mich daran, die Seite schon mal zur Laufzeit gesehen zu haben. Allerdings ist es auch schon etwas her, dass ich sie erstellt habe. Von daher...

Andrerseits habe ich in beiden OnHTMLTags Haltepunkte gesetzt - die werden im 2. Fall (Auf romantischer Spur) gar nicht aufgerufen...

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz