Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css 使用Sinatra列出目录中的文件时出错_Css_Ruby_Directory_Sinatra - Fatal编程技术网

Css 使用Sinatra列出目录中的文件时出错

Css 使用Sinatra列出目录中的文件时出错,css,ruby,directory,sinatra,Css,Ruby,Directory,Sinatra,我正试图跟随这篇西纳特拉教程(从2008年开始): 但是在代码上遇到了一些问题,对我来说,这些文件目前没有列在主标题下。当我将dir更改为“/public/files/”时,会显示列表,但单击文件的链接会导致出现错误页面(“Sinatra不知道这首小曲”)。如果我从URL中删除public,在这种情况下它会起作用。如何解决这两个问题 此外,如果“use_in_file_template!”一行出现错误,我只是将其注释掉。 我不熟悉CSS,有人能告诉我在哪里可以找到文本的颜色吗 需要“rubyg

我正试图跟随这篇西纳特拉教程(从2008年开始):

但是在代码上遇到了一些问题,对我来说,这些文件目前没有列在主标题下。当我将
dir
更改为
“/public/files/”
时,会显示列表,但单击文件的链接会导致出现错误页面(“Sinatra不知道这首小曲”)。如果我从URL中删除
public
,在这种情况下它会起作用。如何解决这两个问题

此外,如果“use_in_file_template!”一行出现错误,我只是将其注释掉。 我不熟悉CSS,有人能告诉我在哪里可以找到文本的颜色吗


需要“rubygems”
需要“sinatra”
需要“路径名”
得到“/”做
dir=“./files/”
@links=Dir[Dir+“*”].map{124;文件|
文件链接(文件)
}.加入
雇员再培训局:索引
结束
帮手
def文件链接(文件)
filename=路径名.new(文件).basename
“
  • ” 结束 结束 使用文件模板中的模板! __结束__ @@索引 @导入“/样式表/iui.css”;
    好吧,sinatra(和许多其他web服务器一样)假定
    public
    是静态文件的根目录,它只是在访问其中的文件/dir时不使用它。因此,在您的情况下,您可以更改代码中的某些行(在获取文件列表时将
    public
    添加到路径,并在生成指向文件的链接时将其删除):

    get "/" do
      dir = "public/files/"
      @links = Dir[dir+"*"].map { |file|
        file_link(file)
      }.join
      erb :index
    end
    
    helpers do
      def file_link(file)
        filename = Pathname.new(file).basename
        "<li><a href='#{file.sub('public','')}' target='_self'>#{filename}</a></li>"
      end
    end
    
    get/“do”
    dir=“public/files/”
    @links=Dir[Dir+“*”].map{124;文件|
    文件链接(文件)
    }.加入
    雇员再培训局:索引
    结束
    帮手
    def文件链接(文件)
    filename=路径名.new(文件).basename
    “
  • ” 结束 结束
    这很有趣,我认为两者之间有更多的一致性,谢谢你的回答!
    get "/" do
      dir = "public/files/"
      @links = Dir[dir+"*"].map { |file|
        file_link(file)
      }.join
      erb :index
    end
    
    helpers do
      def file_link(file)
        filename = Pathname.new(file).basename
        "<li><a href='#{file.sub('public','')}' target='_self'>#{filename}</a></li>"
      end
    end