Path 如何在Perl Dancer中获取公共路径

Path 如何在Perl Dancer中获取公共路径,path,document-root,dancer,Path,Document Root,Dancer,这可能是一个愚蠢的问题,但如何获取Dancer中/public文件夹的路径 我想在公用文件夹下存储/读取csv文件,但不知道Dancer是否提供了任何方便的方法来获取公用文件夹的基本路径 尝试创建文件时出现的错误是: open(FILE, ">>", "myapp/public/file.csv") or die "$!"; 是: 我不知道为什么它会转到Handler.pm?我的第一个答案是,不要那样做……原因有二: 您可能会打开一个安全问题。如果黑客不知何故想出了一种方法来写入您

这可能是一个愚蠢的问题,但如何获取Dancer中
/public
文件夹的路径

我想在公用文件夹下存储/读取csv文件,但不知道Dancer是否提供了任何方便的方法来获取公用文件夹的基本路径

尝试创建文件时出现的错误是:

open(FILE, ">>", "myapp/public/file.csv") or die "$!";
是:


我不知道为什么它会转到Handler.pm?

我的第一个答案是,不要那样做……原因有二:

  • 您可能会打开一个安全问题。如果黑客不知何故想出了一种方法来写入您的环境文件、更改您的密码等,该怎么办
  • 为了版本控制、可移植性等,您确实希望您的/public文件是静态的
  • 也就是说,如果您真的还想这样做,那么public dir位于config->{public}:

    print "Public dir:".config->{public}."\n";
    
    资料来源:

    你是说把这些文件放在公用文件夹下是一个问题吗?我不知道该把这些文件(CSV数据文件)放在哪里?把它们放在垃圾箱里是个好主意吗?我认为lib不是一个好地方,因为它有我所有的模块。或者我应该创建自己的文件夹吗?如果CSV数据文件包含您希望提供的特定内容,我只会为它们创建路由。。。获取一个特定文件的'/file/somefile',或者如果有许多不同的文件,则获取'/file/:filename',然后获取param('filename'),清除它以避免任何黑客企图。是的,如果你想在某处存储非静态文件,我会创建自己的单独文件夹(在myapp下),如果你使用版本控制,则将其设置为忽略该文件夹(以及/logs等)。
    print "Public dir:".config->{public}."\n";