Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.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
Ruby on rails RubyonRails:Can';无法从浏览器查看资源_Ruby On Rails_Ruby_Heroku - Fatal编程技术网

Ruby on rails RubyonRails:Can';无法从浏览器查看资源

Ruby on rails RubyonRails:Can';无法从浏览器查看资源,ruby-on-rails,ruby,heroku,Ruby On Rails,Ruby,Heroku,执行摘要(3小时的错误猜测) 我所要做的就是添加一张新图片,我可以从浏览器中访问它 我尝试了以下方法:1)将新的jpg(header2.jpg)放入assets文件夹(rake assets:clean rake assets:precompile)和app/public文件夹 我通过将浏览器指向或来测试新文件的可访问性 下面是该文件实际存在的证据 ls -l public/header2.jpeg -rw-r-----@ 1 vic staff 7181148 Dec 25 10:4

执行摘要(3小时的错误猜测)

  • 我所要做的就是添加一张新图片,我可以从浏览器中访问它
  • 我尝试了以下方法:1)将新的jpg(header2.jpg)放入assets文件夹(rake assets:clean rake assets:precompile)和app/public文件夹
我通过将浏览器指向或来测试新文件的可访问性

下面是该文件实际存在的证据

ls -l public/header2.jpeg 
-rw-r-----@ 1 vic  staff  7181148 Dec 25 10:47 public/header2.jpeg

ls -l app/assets/images/header2.jpeg 
-rw-r-----@ 1 vic  staff  7181148 Dec 25 10:47 app/assets/images/header2.jpeg
这就是我得到的错误。这是一个路由错误,这意味着该文件不可访问,并进入Rails中的“路由”阶段(正如许多人在本网站上解释的那样)

以下是我尝试过的东西

  • 阅读提供的资产管道文档
  • 在我的config/environment/production.rb和config/environment/development.rb中都添加了以下内容

    config.service\u static\u assets=true

  • Ran rake资产:清理和rake资产:预编译(100倍)

  • 重新启动我的服务器
  • 观看了Ryan Bates资产管道视频 该站点设计为部署在Heroku上,但我所说的所有错误都在我的本地rails实例上

    我的直觉告诉我存在某种配置错误,因为将文件放在资产或公用文件夹中并运行rake clean和rake pre-compile应该可以解决这个问题

    这里是真正有趣的地方

    我可以通过我的浏览器访问它。 (位于public/assets/images子文件夹中) 但我无法访问位于同一文件夹中的header2.jpg


    请帮助朋友

    无需在本地进行资产预编译。找到了答案。如果您将文件同时放在app/assets文件夹和public文件夹中,Rails会感到困惑。用一个或另一个。在这种情况下,我从assets文件夹中删除了该文件,并将其放置在public文件夹中。我不建议在开发模式下将资产放置在public文件夹中。仅资产/public仅用于服务于生产(即资产预编译)。无需在本地执行资产预编译。找到答案。如果您将文件同时放在app/assets文件夹和public文件夹中,Rails会感到困惑。用一个或另一个。在这种情况下,我从assets文件夹中删除了该文件,并将其放置在public文件夹中。我不建议在开发模式下将资产放置在public文件夹中。仅资产/公共仅用于服务于生产(即资产预编译)
    ActionController::RoutingError (No route matches [GET] "/assets/header2.jpg"):