이 질문은 Why do I get “no route matches” for requests to the asset pipeline?과 유사합니다.레일 3.1, 자산 파이프 라인 : 경로 일치 없음
나는 RilsCast #282 및 #279 덕분에 새 자산 파이프 라인을 사용하도록 변환 된 레일 3.0 응용 프로그램을 3.1로 업그레이드했습니다. 생산 모드에서
, 나는 애플리케이션 - <이 >은 .js를 소화보고 있어요 및 애플리케이션 - <는 >에 .css 소화. 큰! 그리고 그 파일의 출처를 보면 압축 된 것을 볼 수 있습니다. 예 ~! 그렇다면 자산 파이프 라인이 작동하고 있다는 뜻입니까?
그러나 개별 파일을 볼 수 있도록 URL에 ?debug_assets=1
을 추가하면 그 중 일부 파일이 ActionController::RoutingError (No route matches [GET] "/assets/<filename>-<digest>.js")
이고 일부 CSS 파일의 경우에도 마찬가지입니다. 그러나 전부는 아니고 일부는 그렇습니다. 일부 파일이이 작업을 수행하는 이유와 그렇지 않은 작업을 파악할 수 없습니다.
나는 tmp/cache/*를 지우고 승객을 다시 시작했습니다. 나는 config.assets.version
을 만났습니다. memcached를 다시 시작했습니다. 이들 중 어느 것도이를 해결하지 못합니다. URL에서 ?debug_assets=1
을 사용할 때만이 문제가 발생합니다. 그것 없이는 압축 및 축소 된 하나의 JS 및 CSS 파일 만 볼 수 있습니다.
그런데 저는 미리 컴파일 된 자산을 사용하지 않습니다. 하지만 웃음 소리 만 들었을 때, 나는 rake assets:precompiled
을 수행했는데, 알고 있었나요? ?debug_assets=1
에는 이제 모든 JS 및 CSS 파일이 표시되며 그 중 404 개가 표시되지 않습니다.
그래서 내가 가진 질문은 "왜 미리 컴파일 된 자산을 사용하고 지연로드의 자산이 누락 될까 걱정하지 않는 이유는 무엇입니까?"라고 생각합니다. 좋은 지적. 답변 : 저는 제가하고있는 일, 일어나는 일, 올바르게 일하는 것을 이해하고 있는지 확인하고 싶습니다.
application.rb :
config.assets.enabled = true
config.assets.version = '1.2'
production.rb :
config.assets.compress = true
config.assets.compile = true
config.assets.digest = true
config.assets.js_compressor = :uglifier
config.assets.css_compressor = :scss
development.rb :
config.assets.compress = false
# I keep this off during development because I want
# to make sure the compression isn't breaking my JS
config.assets.debug = false
글쎄, 나는 몇 달 동안 프리 컴파일 된 자산을 사용하고있다. 그것은가는 길입니다. –