문제

나는 결코 루비 개발자가 아니지만 내 지역 호스트의 루비 프레임 워크를 위해 Haml을 코딩합니다.

원래 vidgirlbox2.flv 파일이라는 파일을 넣고 Haml 내에서 호출했지만 파일을 Vidgirl_home.swf라는 SWF로 변환했습니다.

이 SWF는 효과가있었습니다.

Orginal .fla를 간단하게 변경하고 vidgirl_home.swf를 덮어 쓰기 전까지.

다시는 작동하지 않았습니다.

나는 SWFOBJECT, 눈에 띄지 않는 플래시 객체, SWF를 포함시키는 최소한의 모든 것을 시도했습니다.

로컬 서버를 실행할 때이 메시지를 터미널에서 얻습니다.

ActionController::RoutingError (No route matches "/Users/daniellevine/Desktop/vidgirlBox2.flv" with {:method=>:get}):


Rendering rescues/layout (not_found)

당신이 알 수 있듯이, 그것은 오래된 파일을 찾고 있습니다. 나는 내 haml 에서이 파일을 호출하지 않습니다. 나는이 FLV가 어떻게 루비에 자신을 썼는지에 대해 혼란스러워합니다 (이것은 내가 적어도 내가 생각하는 것입니다).

이것은 해결 방법에서 시도한 것이었지만이 코드는 Rails 컴파일러 오류를 생성하는 것으로 보입니다. 이것은 단순한 명명 규칙 오류 일 수 있습니다. 어딘가에 따옴표가 없습니까?

내 새 임베드 코드 :

      - if Rails.env.development?
      = javascript_include_tag "swfobject"
      - else
      %script{:src => "http://ajax.googleapis.com/ajax/libs/swfobject/2.1/swfobject.js"}
      - id ||= "flash"
      - filename ||= "/images/vidGirl/vidGirl_home.swf"
      - width ||= 440
      - height ||= 247
      - background ||= "#ffffff"
      - version ||= 9
      - base ||= '{base: "."}'

      %div{ :id => id }
        %strong You need to upgrade your Flash Player

      = javascript_tag "swfobject.embedSWF('/images/vidGirl/vidGirl_home.swf', 'vidGirl_home', '440', '247', '9.0.0', '/javascripts/swfobject/expressInstall.swf', {}, '/public/', {});"

무슨 일이 있었는지 아는 사람이 있습니까? 아니면 더 나은 방법, 이것을 고치는 방법?

고맙습니다!!

도움이 되었습니까?

해결책

지난번 에이 문제가 있었을 때, 하나의 플래시 영화는 다른 플래시 영화를로드하려고했지만 기본 경로는 잘못되었습니다. 따라서 AustinFromboston은 FLV를 SWF로 변환하여 SWF에 .flv를 내장함으로써 옳을 수 있습니다.

이 문제를 해결하는 방법? .swf의 경로가 절대적으로 상상하지 않도록하십시오. 그런 다음 기본 매개 변수를 설정해야합니다. 다음은 SwoBject와 Haml의 예입니다.

- if Rails.env.development?
= javascript_include_tag "swfobject"
- else
%script{:src => "http://ajax.googleapis.com/ajax/libs/swfobject/2.1/swfobject.js"}
- id ||= "flash"
- filename ||= "/swf/flashmovie.swf"
- width ||= 990
- height ||= 500
- background ||= "#ffffff"
- version ||= 9
- base ||= '{base: "."}'

%div{ :id => id }
  %strong You need to upgrade your Flash Player

= javascript_tag "swfobject.embedSWF('#{filename}', '#{id}', '#{width}', '#{height}', '#{version}', '/swf/express_Install.swf', {}, #{base}, {});"

Path /swf/flashmovie.swf는 공개 폴더에 폴더 SWF가 있음을 의미합니다.

다른 팁

나는 슈퍼 플래시에 정통하지는 않지만 파일을 SWF로 변환했을 때 기본적으로 이전 vidgirlbox2.flv 파일을 리소스로 포함시켰다. 내 생각에 데스크탑에서 살기 위해 사용 된 자원이 있다는 것입니다. 따라서 FLA 파일을 편집했을 때 로컬 경로는 어떻게 든 리소스에 저장되었습니다. 그러면 당신이보고있는 오류는 플래시 파일 자체 내에서 불량 자원 경로가 호출 되었기 때문에 Haml Markup에서 작성하는 통화가 아니라 괜찮아 보입니다.

사용중인 임베드 코드가 로컬 경로를 통해 파일에 액세스하려고하는 것처럼 보입니다 (즉, 컴퓨터의 경로).

이것이 Rails 앱 (또는 다른 Ruby 프레임 워크)인지 확실하지 않지만 .flv/.swf 파일이 다른 정적 파일과 같은 위치에 있어야합니다.

Rails 앱의 경우 공개/ 폴더 내부에 있습니다. 레일+플래시 앱을 수행하고 일반적으로 파일을 공개/ 플래시/ 디렉토리에 넣습니다.

또 다른 옵션은 .swf/.flv 파일을 S3 계정에 넣고 Direct S3 URL을 통해 액세스하는 것입니다. 대역폭을 절약 할 때 더 큰 비디오 파일에 좋습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top