【发布时间】:2014-09-29 08:33:17
【问题描述】:
我花了一整天的时间试图弄清楚这个问题,但没有任何积极的结果。 当我加载我的网站时,没有 CSS、图像或工作 javascript。
应用在 Rails 3.2.13 和 Capistrano 2 上运行。
这是我的设置:
config/environments/production.rb
Appname::Application.configure do
config.cache_classes = true
config.consider_all_requests_local = false
config.action_controller.perform_caching = true
#config.serve_static_assets = false
config.serve_static_assets = true
config.assets.compress = true
config.assets.compile = true
config.assets.precompile = ['*.js', 'application.css', 'styles.css.scss', '*.css.erb']
config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif *.svg *.woff *.ttf *.ico)
config.assets.digest = true
config.cache_store = :memory_store
config.i18n.fallbacks = true
config.active_support.deprecation = :notify
end
application.rb
require File.expand_path('../boot', __FILE__)
require 'rails/all'
if defined?(Bundler)
Bundler.require(*Rails.groups(:assets => %w(development test)))
end
module Apname
class Application < Rails::Application
config.encoding = "utf-8"
config.filter_parameters += [:password]
config.active_support.escape_html_entities_in_json = true
config.active_record.whitelist_attributes = true
config.assets.enabled = true
config.assets.paths << "#{Rails.root}/app/assets/fonts"
config.assets.precompile << /\.(?:svg|eot|woff|ttf)\z/
config.assets.version = '1.0'
config.assets.initialize_on_precompile = false
end
end
我在本地运行bundle exec rake assets:precompile -> 文件生成到public/assets 目录。
但仍然 - 生产中没有资产。
我已经不知道要在配置文件中更改什么,但在生产服务器上仍然是相同的结果。
我们将非常感谢您的每一次帮助!
编辑:
我刚刚在控制台中注意到图像已正确加载(我可以加载 http://website.com/assets/social_icons/facebook_ico.png),但不是 CSS+JS(http://IP/assets/application-3b6ba7703e465259e4e7ebee17c5ea1e.js 404 NOT FOUND - .css 也是如此)
【问题讨论】:
-
我看到该模块被称为“Appname”,但配置正在寻找“Appname” - 只是您的示例中的一个错字,或者这是从实际代码中复制的?如果您将其称为一件事,然后尝试访问另一件事...问题!
-
Appname只是一个占位符,代码中是应用的真实名称。 -
我假设您正在使用“git”来推动生产?您是否允许 git 在您正在推送的分支中记录资产?它们实际上在 repo 中并且没有被忽略?
标签: ruby-on-rails ruby capistrano assets production