Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.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 Heroku不显示图像,也不接受我的身份验证用户/通行证。我如何访问图像?_Ruby On Rails_Heroku - Fatal编程技术网

Ruby on rails Heroku不显示图像,也不接受我的身份验证用户/通行证。我如何访问图像?

Ruby on rails Heroku不显示图像,也不接受我的身份验证用户/通行证。我如何访问图像?,ruby-on-rails,heroku,Ruby On Rails,Heroku,我已将我的展示项目部署到Heroku。我的主页上显示了一些未加载到heroku上的图像。。。。。我的后端身份验证页面(仅可由我访问)将不接受我的用户/通行证 图像存储在 app/assets/images为您提供几点建议 图像 Heroku运行一个,这基本上意味着每次推送一个新部署时,您的文件都会被覆盖 这对于基于资产的图像来说并不重要,但是如果您使用像曲别针这样的工具来存储动态上传的图像,那么您需要确保能够使用S3这样的工具来持久化数据 - 预编译 在您的情况下,问题可能与流程有关: 在生产环

我已将我的展示项目部署到Heroku。我的主页上显示了一些未加载到heroku上的图像。。。。。我的后端身份验证页面(仅可由我访问)将不接受我的用户/通行证

图像存储在 app/assets/images

为您提供几点建议

图像

Heroku运行一个,这基本上意味着每次推送一个新部署时,您的文件都会被覆盖

这对于基于资产的图像来说并不重要,但是如果您使用像曲别针这样的工具来存储动态上传的图像,那么您需要确保能够使用S3这样的工具来持久化数据

-

预编译

在您的情况下,问题可能与流程有关:

在生产环境中,链轮使用指纹方案 如上所述。默认情况下,Rails假定资产已预编译 并将作为静态资产由web服务器提供

当Rails应用程序将服务于/public目录中的资产而不是/assets目录中的资产时,将进行资产的预编译。这一点非常重要,因为这意味着如果您使用静态CSS引用引用资产,它将无法工作,尤其是在Heroku上

最好的解决方案是使用Rails SCS/SASS之一,并使用其中一个来引用动态资产位置:

#app/assets/stylesheets/application.css.scss
body {
   background: asset_url("your_image.png");
}
-

认证

您的身份验证可能是数据库的一个问题

Heroku的一个问题是,由于它使用的数据库与您的本地系统不同,因此您必须使用使其工作所需的数据填充它

无法正确加载数据库是一个常见的问题,会错过许多不同的迁移。我建议如下:

$ heroku run rake db:migrate

在此之后,您需要确保能够在应用程序中创建相关的详细信息

当您实际包含一个问题时,这总是很好的。