#Vapor
前回はVaporのプロジェクトで「Hello, World!」出ましたが、ファイル構成とかまったくわかっていなかったので、Docsを見てみました。
※Docsは3.0のものです。
#わかっていること
- プロジェクト下で「vapor build」でビルドできる
- 「vapor run serve」で8080ポートでサーバー開始
- Ctrl+Cで停止 (コマンドとか無いのかな?)
くらい・・・
#Folder Structure
とりあえず知りたかったフォルダー構成
.
├── Public
├── Sources
│ ├── App
│ │ ├── Controllers
│ │ ├── Models
│ │ ├── boot.swift
│ │ ├── configure.swift
│ │ └── routes.swift
│ └── Run
│ └── main.swift
├── Tests
│ └── AppTests
└── Package.swift
###Public
アプリケーションロジックをスキップしてすぐにファイルを返す。イメージとかスタイルシートを置くところ。
っと、いうことで
#イメージを表示したい
configure.swiftでFileMiddlewareのコメント外せば動きそうなのでファイルをviで修正
middlewares.use(FileMiddleware.self) // Serves files from `Public/` directory
イメージファイルは手持ちのファイルを使いたいなぁと思い、親のWindows10からUbuntu内のファイルを探しました。
C:\Users\ユーザー名\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\asteria\vapor\Hello\Public
こんなところにあるのですね。
ここにlogo.jpgファイルをコピーします。
「WindowsからWSL/Linuxのファイルシステムへアクセスする行為は推奨されておらず、最悪の場合、ファイルの消失やデータの破損・・・」ってヤバすぎる情報を発見。
最近はコマンド「explorer.exe .」でアクセスするようです。
explorer.exe .
エクスプローラーが開いてファイルが見えました。
ユーザーは「asteria」を使っています。
再度logo.jpgファイルをコピーします。
Ubuntuの方でもすぐに見えましたが「logo.jpg:Zone.Identigier」も出来てます。(※後で見たらエクスプローラーでも見えました)
[ZoneTransfer]
ZoneId=3
ReferrerUrl=https://www.asteria.com/jp/
HostUrl=https://www.asteria.com/jp/wp-content/themes/theme_infoteria/img/logo.jpg?ver=20181001
いつも出てくるのかな?
素直にwgetの方が速かったのかと思いつつ、Vaporを起動してブラウザでアクセスしてみます。
もしかしてビルドか?とビルドをかけて再実行します。
vapor build
vapor run serve
#わかったこと
設定ファイル「configure.swift」を編集したのだからビルドが必要だという単純な事でした。サーバー止めるだけではダメです。