2010-12-10 2 views
1

나는 링크 클릭 이벤트를 캡처하고 아약스, 특히 jquery의 getScript를 통해 전달합니다. 모든 관련하여 잘 작동 개발에Rails respond_to format - .js 확장자가 필요합니까?

는이 문제가 어떻게 든에게 Heroku에 생산에서 일어나는되지 않고 html 파일은 항상 반환

respond_to do |format| 
    format.html { 
    #by default renders show.html.haml 
    } 
    format.js { 
    #by default renders show.js.erb 
    } 
end 

포맷에 대응할 수 있습니다. 파일 확장자를 추가하고 형식 인식을 경로에 정의하면이 작업은 정상적으로 수행되지만 이것이 필요하지 않다고 생각합니까?

미리 감사드립니다.

+0

이것을 좁히려면 개발 및 제작시 getScript 요청에 대한 HTTP 요청 및 응답 헤더를 비교하십시오. 요청에 대한 동의 및 응답에 대한 Content-Type에주의하십시오. 그들은 다른가요? – aceofspades

+0

답변 해 주셔서 감사합니다. 유일한 차이점은 응답 헤더, dev 텍스트/javascript 및 프로덕션 텍스트/html입니다. – mark

+0

respond_to 이전의 작업에 요청 헤더를 기록 할 수 있습니까? – aceofspades

답변

2

누구든지이 문제를 접한다면 내가 잘못하고있는 것을 설명 할 것입니다.

나는 응용 프로그램의 속도를 높이기 위해 영웅의 구현을 사용하고 있습니다. 이전에 생성 된 동적 웹 페이지가 바니시에서 다운로드 된 다음 javascript가 동일한 URL로 호출하여 페이지 업데이트를 확인합니다. 이렇게하면 비 js 사용자와 잠재적으로 약간 오래된 컨텐트를 보는 검색 엔진을 희생시키면서 페이지 응답 시간이 상당히 향상됩니다.

바니시는 수락 헤더를 구분하지 않으며 이전에 캐시 된 html을 반환했습니다. 이를 해결하기 위해 단순히 ajax 요청에 타임 스탬프 매개 변수를 추가했습니다.

+1

물론! 이것이 내가 "URI 불투명도"의 공리에 동의하지 않는 이유입니다. 캐시는 종종 HTTP 헤더를 존중합니다. 캐시를 완전히 비활성화하는 대신 접미사 (예 : .js)를 URI에 추가하거나 쿼리 매개 변수를 추가해야합니다. 이것은 표준 HTTP 요청 및 XHR로 URI에 액세스 할 때도 나타납니다. – aceofspades

관련 문제