即使在rake资产之后,Rails应用程序也会为图像返回404:precompile

弗兰扎

我已经在Digital Ocean上部署了Rails 4应用程序。一切顺利,但是应用返回了404图片:

I, [2014-07-20T22:28:00.693171 #7751]  INFO -- : Started GET "/assets/left.png" for 128.73.51.11 at 2014-07-20 22:28:00 +0000
F, [2014-07-20T22:28:00.695271 #7751] FATAL -- : 
ActionController::RoutingError (No route matches [GET] "/assets/left.png"):
  vendor/bundle/ruby/2.0.0/gems/actionpack-4.1.0/lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'

经过一番谷歌搜索,我发现了这一点,据说我可以使用config.serve_static_assets = truerake assets:precompile我都尝试过,但仍然有404的字体和图像(CSS和JS)都可以。

有人能帮忙吗?

理查德·派克

这可能无法直接解决您的问题-而是澄清可能出了什么问题:)


指纹识别

在不正确了解您的应用设置的情况下,这只是要考虑的问题,但是导致此特定问题的主要原因是 asset fingerprinting

指纹基本上是Rails接收资产文件,将它们编译成单个文件(通常是application.css/ application.js)并允许您根据需要引用这些文件的地方。

这里的问题是,如果您要提供已被指纹识别的静态资产,您将无法再将它们称为CSS / JS中的“静态”资产。您必须使用动态引用


路径

动态引用基本上是您在其中使用类似内容的地方asset_path-它使您可以根据需要引用路径,而不管其文件名如何

通常,您将像这样设置CSS:

#app/stylesheets/application.css
body {
   background: url("your/image.png");
}

这里的问题是,这将直接引用图像,并且将无法使用所需的动态指纹路径。要解决此问题,您需要使用一种Rails CSS预处理器(SASS和SCSS)

#app/assets/stylesheets/application.css.scss
body {
    background: asset_url("your/image.png"); /* Notice the path helper? */
}

动态引用的文件名/路径的问题将是您的应用程序可能面临的问题之一。在不了解您如何引用图像的情况下,我只能推测-但我建议您看一下您使用的是哪种路径/资产助手

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从Rails应用程序中的引擎提供图像资产

来自分类Dev

在“ rake asset:precompile”之后,Rails 4资产未在heroku中加载

来自分类Dev

Heroku rake资产:预编译无法编译Rails应用程序

来自分类Dev

使用Glide库从应用程序资产加载图像

来自分类Dev

使用Glide库从应用程序资产加载图像

来自分类Dev

即使在更新应用程序之后,本地存储仍被维护吗?

来自分类Dev

在Rails应用程序中自动加载资产文件

来自分类Dev

如何为CORS Rails应用程序公开Javascript资产?

来自分类Dev

如何为CORS Rails应用程序公开Javascript资产?

来自分类Dev

我无法让资产在Rails应用程序中工作

来自分类Dev

ngnix 不提供我的 rails 应用程序的资产

来自分类Dev

即使使用BlobstoreService从GAE托管应用程序上传了文件,Google Cloud Storage也会返回404

来自分类Dev

即使应用程序重新启动也保存图像

来自分类Dev

android:即使应用程序关闭,也保留图像位置或排列

来自分类Dev

Rails应用程序资产在WEBrick中只能正常显示,但是没有来自apache2的CSS,Javascript或图像吗?

来自分类Dev

为什么我的Live Rails 4应用程序不加载我的应用程序特定资产?

来自分类Dev

Shopify 应用程序 - 如何使用带有 ruby on rails 的应用程序代理来包含资产

来自分类Dev

资产文件夹中的更新图像未在启动应用程序上显示

来自分类Dev

本地角度应用程序找不到我的资产文件夹图像

来自分类Dev

Xamarin.ios:应用程序中未加载图像资产目录

来自分类Dev

即使在实施IdentityServer之后,ASP.Net Core应用程序仍重定向到/ Account / Login

来自分类Dev

PortableApps.com应用程序即使在更新了firefox Portable之后仍提示更新吗?

来自分类Dev

构建庞大的应用程序资产

来自分类Dev

Rails 4:在资产预编译产生未发现资产问题后,以生产模式运行应用程序

来自分类Dev

从静态站点热链接到我的Rails 4应用程序的资产

来自分类Dev

将包装器应用程序资产文件访问到Rails3中的引擎

来自分类Dev

使用NGINX和Unicorn在Rails 3应用程序中通过SSL服务资产

来自分类Dev

Rails应用程序不在生产环境中提供JS和SCSS资产

来自分类Dev

Rails Simple Blogger Heroku应用程序:预编译资产失败

Related 相关文章

  1. 1

    如何从Rails应用程序中的引擎提供图像资产

  2. 2

    在“ rake asset:precompile”之后,Rails 4资产未在heroku中加载

  3. 3

    Heroku rake资产:预编译无法编译Rails应用程序

  4. 4

    使用Glide库从应用程序资产加载图像

  5. 5

    使用Glide库从应用程序资产加载图像

  6. 6

    即使在更新应用程序之后,本地存储仍被维护吗?

  7. 7

    在Rails应用程序中自动加载资产文件

  8. 8

    如何为CORS Rails应用程序公开Javascript资产?

  9. 9

    如何为CORS Rails应用程序公开Javascript资产?

  10. 10

    我无法让资产在Rails应用程序中工作

  11. 11

    ngnix 不提供我的 rails 应用程序的资产

  12. 12

    即使使用BlobstoreService从GAE托管应用程序上传了文件,Google Cloud Storage也会返回404

  13. 13

    即使应用程序重新启动也保存图像

  14. 14

    android:即使应用程序关闭,也保留图像位置或排列

  15. 15

    Rails应用程序资产在WEBrick中只能正常显示,但是没有来自apache2的CSS,Javascript或图像吗?

  16. 16

    为什么我的Live Rails 4应用程序不加载我的应用程序特定资产?

  17. 17

    Shopify 应用程序 - 如何使用带有 ruby on rails 的应用程序代理来包含资产

  18. 18

    资产文件夹中的更新图像未在启动应用程序上显示

  19. 19

    本地角度应用程序找不到我的资产文件夹图像

  20. 20

    Xamarin.ios:应用程序中未加载图像资产目录

  21. 21

    即使在实施IdentityServer之后,ASP.Net Core应用程序仍重定向到/ Account / Login

  22. 22

    PortableApps.com应用程序即使在更新了firefox Portable之后仍提示更新吗?

  23. 23

    构建庞大的应用程序资产

  24. 24

    Rails 4:在资产预编译产生未发现资产问题后,以生产模式运行应用程序

  25. 25

    从静态站点热链接到我的Rails 4应用程序的资产

  26. 26

    将包装器应用程序资产文件访问到Rails3中的引擎

  27. 27

    使用NGINX和Unicorn在Rails 3应用程序中通过SSL服务资产

  28. 28

    Rails应用程序不在生产环境中提供JS和SCSS资产

  29. 29

    Rails Simple Blogger Heroku应用程序:预编译资产失败

热门标签

归档