如何在没有帮助方法的情况下从 Rails Asset Pipeline 获取.swf文件?



我正在开发一个不使用react-rails gem的Rails/React应用程序。代码分为两个目录 - 一个用于 FE,一个用于 BE。我的任务是为网络摄像头创建一个嵌入式跨浏览器解决方案来录制视频,并且已经为Chrome/FF实施了解决方案(使用webRTC API),并且运行良好。我遇到的困难,许多人似乎也有,是试图实现它以适用于Safari和IE。

我发现使用 flash 似乎是一个不错的实现,所以我想把它包含在我的项目中。我遇到的问题是将.swf文件提供给 React 代码。由于 FE 代码是从 BE 代码中分离出来的,所以我没有将 Rails Views 用于我的任何 FE 代码。HTML DOM 元素需要 data="path_to_swf_file",但是当我将文件放在 Rails 的公共目录中时,我收到 422 错误。有谁知道处理这个问题的最佳方法?我应该为此创建一个控制器并以这种方式提供.swf文件吗?我可以简单地从我的 React 代码访问公共文件夹,即使它是从 Rails 视图中拆分出来的吗?

附带问题:有谁知道可以与 React/Rails 集成的企业解决方案?我认为如果自己实现它被证明太麻烦,最好走这条路。

我没有这个问题的交钥匙答案,但这里有两种方法,可能会解决问题:

  • 在JS代码中,加载Rails资产管道生成的manifest.json,以查找资产的路径。这样,您就可以查找 SWF 文件的完整路径,包括摘要。

  • 如果你可以接受对 Rails 控制器的请求,你可能要考虑不提供文件本身,而只提供它的资产路径。这样,如果您决定开始使用 CDN,它仍然可以工作,并且您的应用程序服务器不需要提供该文件。此外,这可能是操作缓存的用例。

将其作为答案发布,以便更具可读性。但是,如果有人在没有react-rails的情况下对 React on Rails 有更多经验,我自己对此很感兴趣:)

最新更新