Heroku:怎么读文件?

时间:2016-12-26 14:56:03

标签: swift file heroku file-io vapor

我有以下项目布局(签约):

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而无法访问的。我怎样才能解决这个问题并在运行时读取文件?

1 个答案:

答案 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文件,后者用于辅助文件。