简而言之,因为我浪费了足够的时间来使用这个愚蠢的框架。 我想使用纯CSS,没有SCSS,没有css.erb,没有mumbo-jumpo可以增加更多的开销解析,即使它超过2ms。
我的production.rb文件(我正在使用webrick):
Properties::Application.configure do
# Settings specified here will take precedence over those in config/application.rb.
# Code is not reloaded between requests.
config.cache_classes = true
# Eager load code on boot. This eager loads most of Rails and
# your application in memory, allowing both thread web servers
# and those relying on copy on write to perform better.
# Rake tasks automatically ignore this option for performance.
config.eager_load = true
# Full error reports are disabled and caching is turned on.
config.consider_all_requests_local = false
config.action_controller.perform_caching = true
# Enable Rack::Cache to put a simple HTTP cache in front of your application
# Add `rack-cache` to your Gemfile before enabling this.
# For large-scale production use, consider using a caching reverse proxy like nginx, varnish or squid.
# config.action_dispatch.rack_cache = true
# Disable Rails's static asset server (Apache or nginx will already do this).
config.serve_static_assets = true
# Compress JavaScripts and CSS.
config.assets.js_compressor = :uglifier
# config.assets.css_compressor = :sass
# Do not fallback to assets pipeline if a precompiled asset is missed.
config.assets.compile = false
# Generate digests for assets URLs.
config.assets.digest = true
# Version of your assets, change this if you want to expire all your assets.
config.assets.version = '1.0'
# Specifies the header that your server uses for sending files.
# config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
# config.force_ssl = true
# Set to :debug to see everything in the log.
config.log_level = :info
# Prepend all log lines with the following tags.
# config.log_tags = [ :subdomain, :uuid ]
# Use a different logger for distributed setups.
# config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)
# Use a different cache store in production.
# config.cache_store = :mem_cache_store
# Enable serving of images, stylesheets, and JavaScripts from an asset server.
# config.action_controller.asset_host = "http://assets.example.com"
# Precompile additional assets.
# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
# config.assets.precompile += %w( search.js )
# Ignore bad email addresses and do not raise email delivery errors.
# Set this to true and configure the email server for immediate delivery to raise delivery errors.
# config.action_mailer.raise_delivery_errors = false
# Enable locale fallbacks for I18n (makes lookups for any locale fall back to
# the I18n.default_locale when a translation can not be found).
config.i18n.fallbacks = true
# Send deprecation notices to registered listeners.
config.active_support.deprecation = :notify
# Disable automatic flushing of the log to improve performance.
# config.autoflush_log = false
# Use default logging formatter so that PID and timestamp are not suppressed.
config.log_formatter = ::Logger::Formatter.new
end
现在我在资产/样式表下有一个名为general.css的简单css文件,它包含这个简单的行:
html{
background-image:url('homepage_bg_1.jpg');
}
现在我试过了:
background-image:url('assets/homepage_bg_1.jpg');
background-image:url('public/assets/homepage_bg_1.jpg');
background-image:url('public/homepage_bg_1.jpg');
background-image:url('assets/images/homepage_bg_1.jpg');
什么都行不通!!浏览器仍然会查找“homepage_bg_1.jpg”图像,这是正常的,但在我的公共资源文件夹中,我有'homepage_bg_1-de4a0800c51d578f152fe5ca821136a6.jpg'。
我正在使用RAILS_ENV=production bundle exec rake assets:precompile
来预编译我的资产。
现在我假设Rails不够愚蠢,并且会寻找那个文件。但它没有。有人可以告诉我这个框架有什么问题吗?我应该在Github中打开一个问题吗?框架是否试图让我们不使用CSS?
答案 0 :(得分:5)
如果您不希望Rails触及任何资产,您可以将它们放在公共目录中。
这样你就不会有任何指纹识别或不需要的预处理。它们将“按原样”提供。您不必弄乱Rails设置或进行任何预编译。
如果您有一天选择再次使用资产管道,则可以使用这两种方法。
答案 1 :(得分:3)
如果要在样式表和javascript文件中使用指纹资产,则需要对这些资产进行预处理,以便使用资产管道帮助程序方法。而不是咆哮和狂妄尝试阅读那些信息量很大的guides。
您已正确地确定您的资产是使用指纹编制的,这是资产到期并且是管道的组成部分。为了将正确的文件名插入到其他资源中,您需要使用提供的帮助程序。对于ERB使用asset_path
,使用Sass,您有image-url
/ image-path
/ asset-url
/ asset-path
/ etc,具体取决于您的要求。
答案 2 :(得分:0)
您是否尝试过使用CSS中的图片帮助程序来引用图片的摘要版本?
像...一样的东西。
html {
background-image: image-url('homepage_bg_1.jpg');
}
这将自动为您添加名称附加摘要字符串的图像引用。