Tôi đã đẩy một ứng dụng Rails để Heroku và tiếp tục chạy vào vấn đề sau đây:Rails Tài sản tiền biên dịch chỉ không làm việc
tôi sẽ lưu các thay đổi vào tập tin css.scss chính của tôi (trong tài sản/stylesheets) hoặc cho hình ảnh trong nội dung/hình ảnh, đẩy tới git, đẩy nó vào heroku và tải lại trang, chỉ để tìm ra rằng những nội dung này chưa được tải.
Đây cũng là một vấn đề nhỏ trên máy chủ địa phương, nhưng khi nhập:
rake assets:precompile
và tải lại các máy chủ địa phương thường làm việc, trong khi làm
heroku run rake assets:precompile
và sau đó lại đẩy không có gì. Tôi đã tìm kiếm thông tin và không tìm thấy bất cứ điều gì đặc biệt hữu ích.
Đáng chú ý, trong cấu hình của tôi/application.rb (một số trong những kết quả của nói câu cá xung quanh):
# Enable the asset pipeline
config.assets.enabled = true
if defined?(Bundler)
# If you precompile assets before deploying to production, use this line
Bundler.require(*Rails.groups(:assets => %w(development test)))
# If you want your assets lazily compiled in production, use this line
# Bundler.require(:default, :assets, Rails.env)
end
trong config/môi trường/production.rb:
# Disable Rails's static asset server (Apache or nginx will already do this)
config.serve_static_assets = false
# Compress JavaScripts and CSS
config.assets.compress = true
# Fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = true
# Generate digests for assets URLs
config.assets.digest = true
Có thể có thêm sự quan tâm có thể xảy ra khi tôi chuyển đến heroku, điều này nói rằng, trong số những thứ khác, điều này:
Preparing app for Rails asset pipeline
Detected manifest.yml, assuming assets were compiled locally
-----> Rails plugin injection
Injecting rails_log_stdout
Injecting rails3_serve_static_assets
và
Installing dependencies using Bundler version 1.3.0.pre.5
Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin --deployment
tôi đã học với Rails 3 và không thực sự biết làm thế nào các đường ống dẫn tài sản khác với những gì đã có sẵn trong phiên bản trước đó, vì vậy xin lỗi nếu tôi là một thằng ngốc và đưa chồng chéo và/hoặc các cài đặt mâu thuẫn trong các tệp cấu hình của tôi.
Sẽ đánh giá cao bất kỳ trợ giúp nào. Đây là một cơn đau đầu.
Vì vậy, bạn có nghĩa là thêm/công khai/nội dung vào tệp .gitignore? Làm điều đó và "git rm" thư mục? Hoặc xóa các tập tin cụ thể bên trong nó? Lấy làm tiếc. Tôi không biết thư mục có liên quan gì với đường dẫn nội dung, vì vậy tôi không thực sự chắc chắn làm cách nào để hủy thêm thành phần xấu của nó. – Sasha
Xóa thư mục đó khỏi git và sau đó thêm nó vào git bỏ qua. Thư mục này là nơi biên dịch tất cả các tài sản vào khi chạy tài sản rake: biên dịch trước. –
đảm bảo cam kết xóa các tệp ở nơi công khai/tài sản/thành thạo! vì vậy bạn đẩy một thư mục public/assets/rỗng vào heroku. Bạn sẽ thấy heroku tự động gọi rake tài sản: biên dịch trước – Bruno