Golang template.ParseFiles“不是目录”错误

时间:2014-07-15 06:05:40

标签: templates go revel

我正在尝试渲染一个模板:

root_path, err := osext.Executable()
if err != nil {
    return err
}
template_path := root_path + "/app/views/mailtemplates/" + "feedback.html"

fmt.Println(exist(template_path))

tmpl, err := template.ParseFiles(template_path)
if err != nil {
    return err
}

但我有错误not a directory。 我的exist功能:

func exist(file_path string) bool {
    if _, err := os.Stat(file_path); os.IsNotExist(err) {
        return false
    }

    return true
}

它返回truetemplate.ParseFiles有什么问题?我看到文档以及编写参数的地方filenamesThere must be at least one file。我做错了什么?

编辑: 我的变数:

root_path: /home/cnaize/Dropbox/develop/gocode/bin/advorts
template_path: /home/cnaize/Dropbox/develop/gocode/bin/advorts/app/views/mailtemplates/feedback.html

我的文件内容:

<html>
    <head>
    </head>
    <body>
        Hello, World!
    </body>
</html>

已编辑2:我已将所有项目,库等移至/home/cnaize/gocode,现在我遇到错误:

open /home/cnaize/gocode/bin/advorts/app/views/mailtemplates/feedback.txt: not a directory

这是Revel的问题吗?我应该怎么办?我试图删除这个bin文件,没有帮助。

1 个答案:

答案 0 :(得分:2)

实际问题是Dropbox/文件夹中的路径:认为它是由外部进程(dropbox)同步/管理的,访问该文件的能力始终不可靠。

将文件放在Dropbox路径之外可以解决问题。