Wie statte ich statische Dateien mit Vapor aus?

8

Ich versuche serverseitige Anwendung mit Swift und Vapor Framework zu schreiben. Allerdings kann ich nicht herausfinden, wie statische Dateien mit Vapor geliefert werden. Es reicht nicht aus, sie nur in das Verzeichnis Public oder Resources zu verschieben.

Wie kann ich das tun?

UPD. Ich habe Schritte durchgeführt, die Tanner Nelson vorgeschlagen hat, aber es funktioniert immer noch nicht.

Was ich bisher versucht habe:

  1. vapor build und vapor run (mit Vapor Toolbox v0.6.1).

  2. ./build/debug/App aus dem Stammverzeichnis (enthält Package.swift ).

  3. Führen Sie nach dem Bearbeitungsschema in Xcode 8 Beta aus, wie Tanner Nelson vorgeschlagen hat.

In all diesen Fällen bekomme ich einen Fehler {"error":true,"message":"Page not found"}

Ich habe die Datei vapor_logo.png in einem Public Ordner und auch die gleiche Datei im Public/images/ Ordner. Ich versuche es anzufordern und es schlägt fehl. Anfragen, die ich gemacht habe: http://localhost:8080/image/vapor_logo.png und http://localhost:8080/vapor_logo.png . Andere Routen funktionieren jedoch gut.

UPD 2. Nun, das waren alle meine Fehler. Erstens, Datei, von der ich glaube, dass sie vapor_logo.png hieß, hieß eigentlich vapor-logo.png . Zweitens, Fall ist wichtig, wenn Sie eine Anfrage stellen. Ich habe auch versucht, die Datei mit dem Namen IMG_8235.JPG anzufordern, aber die Dateierweiterung als jpg zu schreiben, daher wurde ein Fehler gemeldet.

Zur Erinnerung: Wenn Sie das gleiche Problem wie ich haben, folgen Sie der Antwort von Tanner Nelson und stellen Sie sicher, dass der Name der angeforderten Datei genau mit dem Namen der Datei übereinstimmt.

    
Alexander Doloz 11.07.2016, 18:09
quelle

1 Antwort

14

Die Vapor-Ordnerstruktur von Google Docs :

%Vor%

Alle Dateien im Ordner Public werden standardmäßig bereitgestellt, wenn keine Routen registriert wurden, die in Konflikt mit dem Dateinamen stehen.

Wenn Sie beispielsweise eine Datei Public/foo.png und die folgende main.swift -Datei haben:

%Vor%

Eine Anfrage an localhost/welcome würde "Hello, world" zurückgeben und eine Anfrage an localhost/foo.png würde foo.png zurückgeben.

Wenn dies nicht richtig funktioniert, ist Ihr Arbeitsverzeichnis wahrscheinlich nicht richtig konfiguriert. Dies kann passieren, wenn Sie Ihr Projekt von Xcode aus ausführen oder es von der Befehlszeile aus in einem Ordner ausführen, der nicht das Stammverzeichnis des Projekts ist.

Um Xcode zu beheben, gehen Sie zu Schemes > App > Edit Scheme > Run > Options > Working Directory > [x] Use Custom Working Directory und vergewissern Sie sich, dass das Verzeichnis auf das Stammverzeichnis Ihres Projekts gesetzt ist (in dem sich Package.swift befindet).

Um zu beheben, wenn Sie über die Befehlszeile ausgeführt werden, vergewissern Sie sich, dass Sie die Anwendung über das Stammverzeichnis ausführen. der Befehl run sollte etwa so aussehen wie .build/debug/App , da sich der Ordner .build im Stammverzeichnis befindet.

    
tanner0101 12.07.2016, 14:00
quelle

Tags und Links