Jer*_*bia 8 ruby ruby-on-rails ruby-on-rails-5
我正在尝试预编译我的所有资产以进行生产.当我运行时,RAILS_ENV=production bundle exec rake assets:precompile并非所有资产都是预编译的.我试图使用别人在其他类似问题中建议的方法,但它们并没有为我工作.对于初学者来说,这是我的assets.rb的样子:
Rails.application.config.assets.version = '1.0'
Rails.application.config.assets.paths << Rails.root.join('node_modules')
Rails.application.config.assets.precompile += %w(creative/manifest.js creative/manifest.css images/* bootstrap/* fonts/* magnific-popup/* morphext/* owlcarousel2/* rs-plugin-5/* stylesheets/* javascripts/*)
Run Code Online (Sandbox Code Playgroud)
正如您可以看到我预编译的位置,我试图添加例如directory/*包含所有内容.这是我试图包含的文件及其中的所有内容(这些都在Assets目录中):
bootstrap
fonts
javascripts
morphext
rs-plugin-5
config
images
magnific-popup
owlcarousel2
stylesheets
Run Code Online (Sandbox Code Playgroud)
这是我运行预编译时在我的公共目录中预编译看看公共下的图像,你可以看到许多目录不在那里我甚至打开了每个文件夹,看看它们是否在另一个文件夹中并没有什么是存在的:
最后一部分是当我运行时rails s -e production,我导航到Localhost:3000我不断收到500错误,没有显示任何内容.在chrome和终端的控制台中没有错误,所以我无法看到我的页面在本地生产的样子.任何帮助将不胜感激.
更新
这是我的production.log看起来它没有得到必要的资产:
I, [2017-09-12T18:43:54.606853 #7393] INFO -- : [b2f4fb53-c1ea-4d59-8045-44167c60416c] Started GET "/" for 127.0.0.1 at 2017-09-12 18:43:54 -0700
I, [2017-09-12T18:43:54.625461 #7393] INFO -- : [b2f4fb53-c1ea-4d59-8045-44167c60416c] Processing by CreativesController#index as HTML
I, [2017-09-12T18:43:54.642161 #7393] INFO -- : [b2f4fb53-c1ea-4d59-8045-44167c60416c] Rendering creatives/index.html.erb within layouts/application
I, [2017-09-12T18:43:54.644418 #7393] INFO -- : [b2f4fb53-c1ea-4d59-8045-44167c60416c] Rendered creatives/index.html.erb within layouts/application (2.1ms)
I, [2017-09-12T18:43:54.644629 #7393] INFO -- : [b2f4fb53-c1ea-4d59-8045-44167c60416c] Completed 500 Internal Server Error in 19ms
F, [2017-09-12T18:43:54.645433 #7393] FATAL -- : [b2f4fb53-c1ea-4d59-8045-44167c60416c]
F, [2017-09-12T18:43:54.645478 #7393] FATAL -- : [b2f4fb53-c1ea-4d59-8045-44167c60416c] ActionView::Template::Error (The asset "AdobeStock_95578405.jpeg" is not present in the asset pipeline.):
F, [2017-09-12T18:43:54.645761 #7393] FATAL -- : [b2f4fb53-c1ea-4d59-8045-44167c60416c] 17: <li data-transition="slidehorizontal" data-slotamount="default" data-masterspeed="default" data-title="Next Generation Care">
[b2f4fb53-c1ea-4d59-8045-44167c60416c] 18:
[b2f4fb53-c1ea-4d59-8045-44167c60416c] 19: <!-- main image -->
[b2f4fb53-c1ea-4d59-8045-44167c60416c] 20: <%= image_tag "AdobeStock_95578405.jpeg" ,alt: "slidebg1", :data => {bgposition: "center bottom",bgrepeat: "no-repeat", bgfit: "cover"} , :class => "rev-slidebg" %>
[b2f4fb53-c1ea-4d59-8045-44167c60416c] 21:
[b2f4fb53-c1ea-4d59-8045-44167c60416c] 22: <!-- Transparent Background -->
[b2f4fb53-c1ea-4d59-8045-44167c60416c] 23: <div class="tp-caption dark-translucent-bg"
F, [2017-09-12T18:43:54.645799 #7393] FATAL -- : [b2f4fb53-c1ea-4d59-8045-44167c60416c]
F, [2017-09-12T18:43:54.645828 #7393] FATAL -- : [b2f4fb53-c1ea-4d59-8045-44167c60416c] app/views/creatives/index.html.erb:20:in `_app_views_creatives_index_html_erb___200307797594027740_70304554688000'
I, [2017-09-12T18:43:54.734601 #7393] INFO -- : [8f353cbb-4884-4c2c-896d-ba60b58caa61] Started GET "/favicon.ico" for 127.0.0.1 at 2017-09-12 18:43:54 -0700
F, [2017-09-12T18:43:54.735010 #7393] FATAL -- : [8f353cbb-4884-4c2c-896d-ba60b58caa61]
F, [2017-09-12T18:43:54.735048 #7393] FATAL -- : [8f353cbb-4884-4c2c-896d-ba60b58caa61] ActionController::RoutingError (No route matches [GET] "/favicon.ico"):
F, [2017-09-12T18:43:54.735071 #7393] FATAL -- : [8f353cbb-4884-4c2c-896d-ba60b58caa61]
F, [2017-09-12T18:43:54.735100 #7393] FATAL -- : [8f353cbb-4884-4c2c-896d-ba60b58caa61] actionpack (5.1.3) lib/action_dispatch/middleware/debug_exceptions.rb:63:in `call'
[8f353cbb-4884-4c2c-896d-ba60b58caa61] actionpack (5.1.3) lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
[8f353cbb-4884-4c2c-896d-ba60b58caa61] railties (5.1.3) lib/rails/rack/logger.rb:36:in `call_app'
[8f353cbb-4884-4c2c-896d-ba60b58caa61] railties (5.1.3) lib/rails/rack/logger.rb:24:in `block in call'
[8f353cbb-4884-4c2c-896d-ba60b58caa61] activesupport (5.1.3) lib/active_support/tagged_logging.rb:69:in `block in tagged'
[8f353cbb-4884-4c2c-896d-ba60b58caa61] activesupport (5.1.3) lib/active_support/tagged_logging.rb:26:in `tagged'
[8f353cbb-4884-4c2c-896d-ba60b58caa61] activesupport (5.1.3) lib/active_support/tagged_logging.rb:69:in `tagged'
[8f353cbb-4884-4c2c-896d-ba60b58caa61] railties (5.1.3) lib/rails/rack/logger.rb:24:in `call'
[8f353cbb-4884-4c2c-896d-ba60b58caa61] actionpack (5.1.3) lib/action_dispatch/middleware/remote_ip.rb:79:in `call'
[8f353cbb-4884-4c2c-896d-ba60b58caa61] actionpack (5.1.3) lib/action_dispatch/middleware/request_id.rb:25:in `call'
[8f353cbb-4884-4c2c-896d-ba60b58caa61] rack (2.0.3) lib/rack/method_override.rb:22:in `call'
[8f353cbb-4884-4c2c-896d-ba60b58caa61] rack (2.0.3) lib/rack/runtime.rb:22:in `call'
[8f353cbb-4884-4c2c-896d-ba60b58caa61] activesupport (5.1.3) lib/active_support/cache/strategy/local_cache_middleware.rb:27:in `call'
[8f353cbb-4884-4c2c-896d-ba60b58caa61] actionpack (5.1.3) lib/action_dispatch/middleware/executor.rb:12:in `call'
[8f353cbb-4884-4c2c-896d-ba60b58caa61] rack (2.0.3) lib/rack/sendfile.rb:111:in `call'
[8f353cbb-4884-4c2c-896d-ba60b58caa61] railties (5.1.3) lib/rails/engine.rb:522:in `call'
[8f353cbb-4884-4c2c-896d-ba60b58caa61] puma (3.10.0) lib/puma/configuration.rb:225:in `call'
[8f353cbb-4884-4c2c-896d-ba60b58caa61] puma (3.10.0) lib/puma/server.rb:605:in `handle_request'
[8f353cbb-4884-4c2c-896d-ba60b58caa61] puma (3.10.0) lib/puma/server.rb:437:in `process_client'
[8f353cbb-4884-4c2c-896d-ba60b58caa61] puma (3.10.0) lib/puma/server.rb:301:in `block in run'
[8f353cbb-4884-4c2c-896d-ba60b58caa61] puma (3.10.0) lib/puma/thread_pool.rb:120:in `block in spawn_thread'
I, [2017-09-12T18:43:58.249911 #7393] INFO -- : [2e6342ac-ec61-410c-98ba-ae205fb9cc26] Started GET "/" for 127.0.0.1 at 2017-09-12 18:43:58 -0700
I, [2017-09-12T18:43:58.251066 #7393] INFO -- : [2e6342ac-ec61-410c-98ba-ae205fb9cc26] Processing by CreativesController#index as HTML
I, [2017-09-12T18:43:58.252212 #7393] INFO -- : [2e6342ac-ec61-410c-98ba-ae205fb9cc26] Rendering creatives/index.html.erb within layouts/application
I, [2017-09-12T18:43:58.253079 #7393] INFO -- : [2e6342ac-ec61-410c-98ba-ae205fb9cc26] Rendered creatives/index.html.erb within layouts/application (0.7ms)
I, [2017-09-12T18:43:58.253250 #7393] INFO -- : [2e6342ac-ec61-410c-98ba-ae205fb9cc26] Completed 500 Internal Server Error in 2ms
F, [2017-09-12T18:43:58.254061 #7393] FATAL -- : [2e6342ac-ec61-410c-98ba-ae205fb9cc26]
F, [2017-09-12T18:43:58.254123 #7393] FATAL -- : [2e6342ac-ec61-410c-98ba-ae205fb9cc26] ActionView::Template::Error (The asset "AdobeStock_95578405.jpeg" is not present in the asset pipeline.):
F, [2017-09-12T18:43:58.254377 #7393] FATAL -- : [2e6342ac-ec61-410c-98ba-ae205fb9cc26] 17: <li data-transition="slidehorizontal" data-slotamount="default" data-masterspeed="default" data-title="Next Generation Care">
[2e6342ac-ec61-410c-98ba-ae205fb9cc26] 18:
[2e6342ac-ec61-410c-98ba-ae205fb9cc26] 19: <!-- main image -->
[2e6342ac-ec61-410c-98ba-ae205fb9cc26] 20: <%= image_tag "AdobeStock_95578405.jpeg" ,alt: "slidebg1", :data => {bgposition: "center bottom",bgrepeat: "no-repeat", bgfit: "cover"} , :class => "rev-slidebg" %>
[2e6342ac-ec61-410c-98ba-ae205fb9cc26] 21:
[2e6342ac-ec61-410c-98ba-ae205fb9cc26] 22: <!-- Transparent Background -->
[2e6342ac-ec61-410c-98ba-ae205fb9cc26] 23: <div class="tp-caption dark-translucent-bg"
F, [2017-09-12T18:43:58.254415 #7393] FATAL -- : [2e6342ac-ec61-410c-98ba-ae205fb9cc26]
F, [2017-09-12T18:43:58.254442 #7393] FATAL -- : [2e6342ac-ec61-410c-98ba-ae205fb9cc26] app/views/creatives/index.html.erb:20:in `_app_views_creatives_index_html_erb___200307797594027740_70304554688000'
Run Code Online (Sandbox Code Playgroud)
更新2
这是我的资产文件夹结构的图像:
我还注意到有另一个资产文件夹,因为它预编译了rs-plugin的结构而不是其他文件夹看到图像:
这是我的application.rb:
require_relative 'boot'
require 'rails/all'
# Require the gems listed in Gemfile, including any gems
# you've limited to :test, :development, or :production.
Bundler.require(*Rails.groups)
module Cnd
class Application < Rails::Application
# Initialize configuration defaults for originally generated Rails version.
config.load_defaults 5.1
config.assets.paths << Rails.root.join("app", "assets", "fonts")
config.assets.paths << Rails.root.join("app", "assets", "images")
config.assets.paths << Rails.root.join("app", "assets", "bootstrap")
config.assets.paths << Rails.root.join("app", "assets", "rs-plugin-5")
config.assets.paths << Rails.root.join("app", "assets", "magnific-popup")
config.assets.paths << Rails.root.join("app", "assets", "owlcarousel2")
config.assets.paths << Rails.root.join("app", "assets", "morphext")
# Settings in config/environments/* take precedence over those specified here.
# Application configuration should go into files in config/initializers
# -- all .rb files in that directory are automatically loaded.
end
end
Run Code Online (Sandbox Code Playgroud)
小智 6
如果您希望使用rails应用程序,请首先确保这一点.
# Disable serving static files from the `/public` folder by default since
# Apache or NGINX already handles this.
config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?
Run Code Online (Sandbox Code Playgroud)
关于资产编译,请注意,如果您分别谈论css或js,则可能需要添加到application.css或.js中.检查一下.
例如(如上面的链接)
app/assets/javascripts/home.js
lib/assets/javascripts/moovinator.js
vendor/assets/javascripts/slider.js
vendor/assets/somepackage/phonebox.js
Run Code Online (Sandbox Code Playgroud)
将在这样的清单中引用:
//= require home
//= require moovinator
//= require slider
//= require phonebox
Run Code Online (Sandbox Code Playgroud)
也可以访问子目录中的资产.
app/assets/javascripts/sub/something.js
Run Code Online (Sandbox Code Playgroud)
引用为:
//= require sub/something
Run Code Online (Sandbox Code Playgroud)
我注意到的一些事情:
AdobeStock_95578405.jpeg图像的资产目录吗?Rails.application.config.assets.precompileconfig/initializers/assets.rb文件.Rails.application.config.assets.precompile += %w(creative/manifest.js creative/manifest.css images/* bootstrap/* fonts/* magnific-popup/* morphext/* owlcarousel2/* rs-plugin-5/* stylesheets/* javascripts/*)
Run Code Online (Sandbox Code Playgroud)
但正如我从你的截图中看到的那样,你assets的public/assets目录中有一个名为的文件夹.
你的指纹文件预编译文件在里面public/assets/assets而不是public/assets
这意味着如果这些文件正在推向生产(检查它们是否在你的git存储库中,如果没有这样做git add),你将无法在路径中看到它们,localhost:3000/assets/<nameofyourfile>因为你的目录结构已经改变了,也许你可以显示它们localhost:3000/assets/assets/<nameofyourfile>,但如果我是你,我会保持正常的目录结构.
预编译资产意味着创建它的指纹版本
通过说我想预编译我的所有资产,你说你想要在资产管道中添加或编辑的所有文件生成一个预编译的指纹版本,以便在生产中使用.
预编译如何工作?您可以阅读Asset Pipeline Documentation的第4.1章,基本上sprockets使用一个调用的文件.sprockets-manifest-fingerprint.json来检查哪个是生产中使用的指纹文件的最新版本.这就是有时删除public/assets文件夹解决问题的原因,因为您删除了所有旧文件,包括sprockets-manifest.json可能无法使用最新指纹更新的文件.
app/assets如果文件夹中的文件没有找到,那么开发将回退到文件夹中的public/assets文件,这就是为什么只在生产中收到错误的原因.您可以阅读了解如何禁用此行为
这些步骤也是如此,因为错误通常在开发中更容易解决,因为您不必推送git来查看结果.有时文件包含在内,.gitignore或者您需要手动添加该文件git add app/assets/<nameofthefolder>/<nameofthefile>
我们也确实public在屏幕截图中看到了您的文件夹,但是我们没有看到您的app/assets文件夹结构和任何链接设置,所以可能不是为了获得解决方案而在问题中添加赏金,而只是向我们提供必要的信息.找到解决方案.
现在这是一个基于意见的通用问题
此外,我相信你改变了/assets路径做config.assets.prefix = "/some_other_path"
这可能是错误的,但看起来您config从预编译目录列表中遗漏了。尝试将您的列表更新为:
Rails.application.config.assets.precompile += %w(creative/manifest.js creative/manifest.css images/* bootstrap/* fonts/* magnific-popup/* morphext/* owlcarousel2/* rs-plugin-5/* stylesheets/* javascripts/* config/*)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5481 次 |
| 最近记录: |