3

마운트 할 수있는 엔진 내에있는 비표준 애셋 (예 : 이미지/자바 스크립트 파일/스타일 시트가 아닌 파일 (json 및 이진 파일)이 아닌 파일)이 있습니다 (isolate_namespace 제외).)에 app/assets/data. 이것들을 자산 파이프 라인의 일부로 만들고 싶습니다 (예 : 이미지와 같은 방식으로). 애셋 경로 컬렉션에 추가 할 수 있습니다.마운트 가능한 엔진에서 비표준 애셋의 레일 경로

class Engine < ::Rails::Engine 
    config.after_initialize do 
    Rails.application.config.assets.paths << root.join("app", "assets", "data") 
    end 
end 

나는 자산 (예를 들어 Rails.application.assets[]ActionController::Base.helpers.asset_path를 통해) 자산 파이프 라인에 볼 수 있습니다 레일 콘솔에서 볼 수 있습니다. 예를 들어, 파일 app/assets/data/foo.json를 들어, 호스팅 응용 프로그램에 대한 레일 콘솔에서 asset_path 도우미 나에게 경로 assets/foo.json을 제공하지만 그 경로가 작동하지 않습니다, 나는

ActionController::RoutingError (No route matches [GET] "/assets/foo.json") 

오류가 발생합니다.

어떻게 이러한 파일을 제공하는 호스팅 Rails 응용 프로그램을 호스팅 할 수 있습니까?

답변

0

밝혀졌습니다. 특정 이름의 json 파일에서는 이상한 동작입니다. 해당 파일의 이름은 schema-[UUID].json입니다. 레일스는 json 형식의 데이터를 다시 원하는 일부 컨트롤러 (그런 경로가 없거나 schema 컨트롤러도 있음)에 대한 호출이라고 생각하는 것으로 보입니다. 파일 이름을 [UUID]-schema.json으로 바꿀 때 갑작스런 일들이 일어납니다.

관련 문제