我有以下项目布局(签约):
project_root
└── Sources
└── App
├── main.swift
└── Models
└── SQL
└── createTables.sql
我正在尝试在运行时读取createTables.sql
文件,但FileManager.fileExists()
表示它不存在。我在#file
中使用main.swift
获得了路径:
let path = URL(fileURLWithPath: #file).deletingLastPathComponent().path + "/Models/SQL/createTables.sql"
打印出路径,似乎是正确的。 我猜测源树是因为Heroku的ephemeral filesystem而无法访问的。我怎样才能解决这个问题并在运行时读取文件?
答案 0 :(得分:3)
在编译时使用1- Theme 1
2- Theme 2 and so on.
获取项目目录。
drop.workdir
注意我还将您的文件从try String(contentsOfFile: drop.workDir + "Resources/SQL/createTables.sql")
移到Sources
。 Vapor的项目布局并非一成不变,但目前规则似乎是前者用于Swift文件,后者用于辅助文件。