加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-17 02:06:33 所属栏目:百科 来源:网络整理
导读:它可以在开发模式下查找,但是向我展示ActionController :: RoutingError(无路由匹配[GET]“/lenord-single-page-theme/js/custom.js”):生产模式中的错误. 在运行rails服务器之前,我运行了RAILS_ENV =生产rake资产:precompile –trace 我在供应商下添加了
它可以在开发模式下查找,但是向我展示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.haml
60:  %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.png

14 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”

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读