Pergunta

Eu sou de nenhuma maneira um desenvolvedor Ruby, mas HAML código I para um quadro ruby ??no meu localhost.

Eu tinha inicialmente colocado um arquivo chamado arquivo vidgirlBox2.flv e chamou a ele dentro do HAML, mas converteu o arquivo para um swf chamado vidGirl_home.swf.

Esta swf trabalhou.

Até fiz uma mudança simples para o fla orginal, e substituiu o vidGirl_home.swf.

Isso nunca funcionou novamente.

Eu tentei swfobject, Objeto Unobtrusive Flash, o mínimo de incorporação de um swf, tudo.

Acontece que, eu recebo essa mensagem no meu terminal ao executar meu servidor local:

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


Rendering rescues/layout (not_found)

Como você pode dizer, a sua procura de um arquivo antigo. Eu não estou chamando este arquivo em qualquer da minha haml. Estou confuso sobre a forma como este flv escreveu-se no rubi (é isso que eu assumir, pelo menos).

Esta foi a minha tentativa de uma solução, mas parece que este código gera um erro do compilador trilhos. Este poderia ser apenas um erro de convenção de nomenclatura simples. Estou faltando um lugar aspas?

Meu Novo Código Embed:

      - 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/', {});"

Alguém sabe o que poderia ter acontecido? ou melhor ainda, como consertar isso?

Obrigado !!

Foi útil?

Solução

A última vez que tive esse problema, um filme flash estava tentando carregar um outro filme flash, mas o caminho base estava errado. Então austinfromboston pode estar certo, convertendo o flv para um swf, é incorporado a sua .flv em um swf.

Como resolver isso? Certifique-se o caminho no .swf é releative não absolut. Então, você precisa definir o parâmetro BASE. Aqui está um exemplo com swobject e 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}, {});"

O caminho /swf/flashmovie.swf significa que há um swf pasta na pasta pública.

Outras dicas

Eu não sou super-flash-entendido, mas parece que quando convertido o arquivo para um swf, que basicamente incorporado seu arquivo vidgirlBox2.flv antes como um recurso. Meu palpite é que recurso utilizado para viver em seu desktop, então quando você editou o arquivo fla o caminho local foi salvo para o recurso de alguma forma. O erro que você está vendo, então, seria devido a um caminho de recurso ruim ser chamado de dentro do próprio arquivo flash, não das chamadas que você está fazendo em sua marcação haml, que olhar bem.

Parece que o código que você está usando está tentando acessar o arquivo através de um caminho local (ou seja, o caminho no seu computador).

Eu não tenho certeza se este é um aplicativo Rails (ou outro framework Ruby), mas você vai precisar para fazer o arquivo .flv / .swf é no mesmo lugar como outros arquivos estáticos.

Para aplicações Rails, isso seria dentro da / pasta pública. Eu faço alguns aplicativos Rails + Flash e eu geralmente colocar os arquivos em um público / flash / diretório.

Outra opção é colocar o / arquivo .swf .flv em uma conta S3 e acessá-lo via direta S3 URL. Isso é bom para arquivos de vídeo maiores, pois economiza na largura de banda.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top