Rails 3.2 Asset Pipeline с Thin и Apache, не находит ресурсы

Мой вопрос похож на этот Rails 3.2 Asset Pipeline с бесконечными ошибками пассажира , за исключением того, что когда я пытаюсь перейти к


, я получаю 404. Вот вещь, которую я не понимаю. Он смотрит в / assets /, но когда я смотрю на развернутый код, активы находятся только в / public / assets, что на самом деле является символической ссылкой на / var / www / myapp / shared / assets. Так что же в мире отвечает за то, чтобы сообщить приложению, что просмотр / assets даст правильные результаты ??

Я использую Rails 3.2.0, ruby-1.9.3-p125, развертываю в Ubuntu, Apache, и тонкий.

Я должен уточнить: Мои ресурсы действительно развернуты на сервере. Все работает отлично, пока их не нужно обслуживать, в w Его case production.log сообщает мне, что ищет их в /assets/application-eed7996ee9017637f923133371ab3e92.css, а это 404-е.

Для каждого запроса мой thin.log сообщает

cache: [GET /] miss

, а production.log говорит

ActionController::RoutingError (No route matches [GET] "/assets/application-abecf2e096af9ee80697fd49e79a55e7.js"):

ОБНОВЛЕНИЕ @Brandan спасибо за помощь. Мои активы действительно находятся в RAILS_ROOT / public / assets . Я поместил это в свой файл vhost Apache:

DocumentRoot /var/rails/myappname/current/public

RewriteEngine On
XSendFile On
XSendFilePath /var/rails/myappname #not even sure if this line is needed


    Header unset ETag
    FileETag None
    ExpiresActive On
    ExpiresDefault "access plus 1 year"

My RAILS_ROOT / config / environment / production.rb settings:

config.cache_classes = true
config.consider_all_requests_local = false
config.action_controller.perform_caching = true
config.serve_static_assets = false
config.assets.compress = true
config.assets.compile = false
config.assets.digest = true
config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache

9
задан Community 23 May 2017 в 11:44
поделиться