gpt4 book ai didi

ruby-on-rails - Rails App 未在生产模式下使用自定义 Assets 文件夹提供 Assets

转载 作者:行者123 更新时间:2023-12-04 06:08:42 25 4
gpt4 key购买 nike

它可以在开发模式下找到,但给我看ActionController::RoutingError (No route matches [GET] "/lenord-single-page-theme/js/custom.js"):生产模式错误。

在运行 rails server 之前,我运行了 RAILS_ENV=production rake assets:precompile --trace
我在供应商下添加了两个 Assets 文件夹

application.rb文件,我插入一行

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

并更改了 config.serve_static_assetstrue
+++ 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

更新

我以这种方式引用我的js文件
welcome.html.haml
60: %script{src: asset_path("lenord-single-page-theme/js/custom.js")}

更新

我猜这个问题可能在 production.rb
我试图通过在 production.rb 中添加这一行来编译所有文件
config.assets.precompile += %w( vendor/themes/* )

我通过 rails s -e production 在生产模式下运行服务器命令而不是 nginx or apache
更新

我得到了 ActionView::Template::Error (Invalid CSS after "}": expected selector or at-rule, was "}"在生产模式
在我做了以下更改之后。

../../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 之间的 TreeView

合理吗?

在公共(public)/ Assets 下
% tree lenord-single-page-theme                                                                                                                               (git)-[feature/prettier_form] 
lenord-single-page-theme
└── js
├── application-dfabb3389cb2e71ba110a8589e5e106b.js
└── application-dfabb3389cb2e71ba110a8589e5e106b.js.gz

在供应商/主题/下
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

最佳答案

管道 Assets 可以放置在三个位置之一的应用程序中:app/assets、lib/assets 或 vendor/assets。
您已将 Assets 放置在 vendor/assets 和 vendor/themes 中。

预编译附加 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

在公共(public)/ Assets 下查看:

该文件应预编译

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



或者

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



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

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 未在生产模式下使用自定义 Assets 文件夹提供 Assets ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23750596/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com