ruby-on-rails – Rails App不在具有自定义资源文件夹的生产模式下提供资产

ruby-on-rails – Rails App不在具有自定义资源文件夹的生产模式下提供资产,第1张

概述它可以在开发模式下查找,但是向我展示ActionController :: RoutingError(无路由匹配[GET]“/lenord-single-page-theme/js/custom.js”):生产模式中的错误. 在运行rails服务器之前,我运行了RAILS_ENV =生产rake资产:precompile –trace 我在供应商下添加了两个资产文件夹 在application.r 它可以在开发模式下查找,但是向我展示ActionController :: RoutingError(无路由匹配[GET]“/lenord-single-page-theme/Js/custom.Js”):生产模式中的错误.

在运行rails服务器之前,我运行了RAILS_ENV =生产rake资产:precompile –trace

我在供应商下添加了两个资产文件夹

在application.rb文件中,我插入了这行

config.assets.paths << "#{Rails.root}/vendor/themes"

并将config.serve_static_assets更改为true

+++ b/config/environments/production.rb@@ -20,7 +20,7 @@ DqaStreesfulServer::Application.configure do   # config.action_dispatch.rack_cache = true   # disable Rails's static asset server (Apache or Nginx will already do this).-  config.serve_static_assets = false+  config.serve_static_assets = true

文件夹结构

vendor├── assets│   ├── JavaScripts│   └── stylesheets└── themes    ├── ace-admin-theme    │   ├── avatars    │   ├── CSS    │   ├── Font    │   ├── images    │   ├── img    │   └── Js    └── lenord-single-page-theme        ├── CSS        ├── Fonts        ├── img        ├── index.HTML        ├── Js        └── rs-assets

UPDATE

我以这种方式引用我的Js文件

welcome.HTML.haml60:  %script{src:  asset_path("lenord-single-page-theme/Js/custom.Js")}

UPDATE

我猜这个问题可能在production.rb中

我试图通过在production.rb中添加这一行来编译所有文件

config.assets.precompile += %w( vendor/themes/* )

我通过rails s -e production命令而不是Nginx或apache以生产模式运行服务器

UPDATE

我得到了ActionVIEw :: Template :: Error(“}”之后的无效CSS:期望的选择器或at-rule,在生产模式下为“}”
之后我做了以下更改.

在../../config/environments/production.rb中

+  config.assets.compile = true+  config.assets.precompile = [/^[-_a-zA-Z0-9]*\..*/]+  config.assets.precompile += %w( *.Js *.CSS )

我在这里展示了vendoe / theme /和public / assets之间的树视图

这合理吗?

在公共/资产下

% tree lenord-single-page-theme                                                                                                                               (git)-[feature/prettIEr_form] lenord-single-page-theme└── Js    ├── application-dfabb3389cb2e71ba110a8589e5e106b.Js    └── application-dfabb3389cb2e71ba110a8589e5e106b.Js.gz

在vendor / themes /下

lenord-single-page-theme├── CSS│   ├── animate.min.CSS│   ├── bootstrap.CSS│   ├── bootstrap.min.CSS│   ├── Font-awesome.min.CSS│   ├── prettyPhoto.CSS│   ├── rs-settings-ie8.CSS│   ├── rs-settings.CSS│   └── style.CSS├── Fonts│   ├── FontAwesome.otf│   ├── Fontawesome-webFont.eot│   ├── Fontawesome-webFont.svg│   ├── Fontawesome-webFont.ttf│   └── Fontawesome-webFont.woff├── img│   ├── 1.jpg│   ├── 10.jpg│   ├── 11.png│   ├── 12.jpg│   ├── 13.png│   ├── 2.jpg│   ├── 3.jpg│   ├── 4.png│   ├── 5.png│   ├── 6.png│   ├── 8.jpg│   ├── 9.jpg│   ├── aboutus.png│   ├── back-top.png│   ├── banner_1.jpg│   ├── banner_2.jpg│   ├── banner_3.jpg│   ├── blue-back.png│   ├── dummy.png│   ├── fback.png│   ├── portfolio│   │   ├── 1.jpg│   │   ├── 2.jpg│   │   ├── 3.jpg│   │   ├── 4.jpg│   │   ├── 5.jpg│   │   ├── 6.jpg│   │   ├── 7.jpg│   │   ├── 8.jpg│   │   ├── 9.jpg│   │   ├── tn1.jpg│   │   ├── tn2.jpg│   │   ├── tn3.jpg│   │   ├── tn4.jpg│   │   ├── tn5.jpg│   │   ├── tn6.jpg│   │   ├── tn7.jpg│   │   ├── tn8.jpg│   │   └── tn9.jpg│   ├── prettyPhoto│   │   ├── dark_rounded│   │   │   ├── btnNext.png│   │   │   ├── btnPrevIoUs.png│   │   │   ├── contentPattern.png│   │   │   ├── default_thumbnail.gif│   │   │   ├── loader.gif│   │   │   └── sprite.png│   │   ├── dark_square│   │   │   ├── btnNext.png│   │   │   ├── btnPrevIoUs.png│   │   │   ├── contentPattern.png│   │   │   ├── default_thumbnail.gif│   │   │   ├── loader.gif│   │   │   └── sprite.png│   │   ├── default│   │   │   ├── default_thumb.png│   │   │   ├── loader.gif│   │   │   ├── sprite.png│   │   │   ├── sprite_next.png│   │   │   ├── sprite_prev.png│   │   │   ├── sprite_x.png│   │   │   └── sprite_y.png│   │   ├── facebook│   │   │   ├── btnNext.png│   │   │   ├── btnPrevIoUs.png│   │   │   ├── contentPatternBottom.png│   │   │   ├── contentPatternleft.png│   │   │   ├── contentPatternRight.png│   │   │   ├── contentPatterntop.png│   │   │   ├── default_thumbnail.gif│   │   │   ├── loader.gif│   │   │   └── sprite.png│   │   ├── light_rounded│   │   │   ├── btnNext.png│   │   │   ├── btnPrevIoUs.png│   │   │   ├── default_thumbnail.gif│   │   │   ├── loader.gif│   │   │   └── sprite.png│   │   └── light_square│   │       ├── btnNext.png│   │       ├── btnPrevIoUs.png│   │       ├── default_thumbnail.gif│   │       ├── loader.gif│   │       └── sprite.png│   ├── product.png│   ├── service│   │   ├── 11.png│   │   ├── 12.png│   │   ├── 21.png│   │   ├── 22.png│   │   ├── 31.png│   │   ├── 32.png│   │   ├── 41.png│   │   └── 42.png│   ├── service.png│   ├── vast.jpg│   ├── viVotek_square_icon.jpg│   ├── vvtk_sd.jpg│   └── wood-back.png├── index.HTML├── Js│   ├── application.Js│   ├── bootstrap.Js│   ├── bootstrap.min.Js│   ├── custom.Js│   ├── gmaps.js│   ├── HTML5shiv.Js│   ├── jquery.arbitrary-anchor.Js│   ├── jquery.Js│   ├── jquery.knob.Js│   ├── jquery.prettyPhoto.Js│   ├── jquery.themepunch.plugins.min.Js│   ├── jquery.themepunch.revolution.min.Js│   ├── respond.min.Js│   └── waypoints.min.Js└── rs-assets    ├── arrow_large_left.png    ├── arrow_large_right.png    ├── arrow_left.png    ├── arrow_left2.png    ├── arrow_right.png    ├── arrow_right2.png    ├── arrowleft.png    ├── arrowright.png    ├── arrows.psd    ├── black50.png    ├── Boxed_bgtile.png    ├── bullet.png    ├── bullet_Boxed.png    ├── bullets.png    ├── bullets.psd    ├── bullets2.png    ├── coloredbg.png    ├── grain.png    ├── large_left.png    ├── large_right.png    ├── loader.gif    ├── loader2.gif    ├── navigdots.png    ├── navigdots_bgtile.png    ├── shadow1.png    ├── shadow2.png    ├── shadow3.png    ├── small_arrows.psd    ├── small_left.png    ├── small_left_Boxed.png    ├── small_right.png    ├── small_right_Boxed.png    ├── timer.png    ├── timerdot.png    ├── transparent.jpg    └── white50.png14 directorIEs,154 files
解决方法 管道资产可以放置在三个位置之一的应用程序内:app / assets,lib / assets或vendor / assets.
您已将资产放置在供应商/资产和供应商/主题中.

预编译其他资产:

config.assets.precompile += ['vendor/themes/lenord-single-page-theme/Js/*.Js']config.assets.precompile += ['vendor/themes/lenord-single-page-theme/CSS/*.CSS']

运行rake任务:

RAILS_ENV=production bundle exec rake assets:precompile

检查公共/资产:

该文件应该预先编译

vendor/themes/lenord-single-page-theme/Js/custom.Js

要么

lenord-single-page-theme/Js/custom.Js

然后像这样调用自定义资产文件:

JavaScript_include_tag “PATH_OF_THE_ASSET”

例如:

JavaScript_include_tag “lenord-single-page-theme/Js/custom.Js”

要么

JavaScript_include_tag “vendor/themes/lenord-single-page-theme/Js/custom.Js”

总结

以上是内存溢出为你收集整理的ruby-on-rails – Rails App不在具有自定义资源文件夹的生产模式下提供资产全部内容,希望文章能够帮你解决ruby-on-rails – Rails App不在具有自定义资源文件夹的生产模式下提供资产所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1269847.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存