2

我想使用 SoundManager2 在我的 Ruby on Rails 应用程序中播放声音。它想要的东西之一是带有 swfs 的目录。我应该把它放在哪里,然后如何配置我的声音管理器?我想将它们放在目录 /soundmanager/ 中并使用 JS,如下所示:

<script>
if (soundManager) {
  soundManager.setup({
    url: '/soundmanager/',
    onready: function() {
      var myGameMusic = soundManager.createSound({
        id: 'music1',
        url: 'music1.wav'
      });
      myGameMusic.play();
    },
    ontimeout: function() {
      console.log("Error in soundManager.setUp")
      // Hrmm, SM2 could not start. Missing SWF? Flash blocked? Show an error, etc.?
    }
  });
}
</script>

我在哪里放置 swfs (/soundmanager/) 以及如何将其配置为公开?

一个相关的问题是:假设我有一些想要下载的 PDF。我应该把它们放在哪里以便它们可以下载?

我很困惑,因为有一个 /public 目录,但显然它不再在 rails 3.1 中工作了。

4

2 回答 2

1

你把它们放进去app/assets/

关键是它们是从那里以开发模式服务的。

生产模式下,资产被缩小并放置在public/

这称为“资产编译”,是在 Rails 3.1 中引入的,如您所见,它引起了很多混乱。

于 2012-12-16T01:29:44.383 回答
1

Web 服务器应该与 Rails 一起提供静态资源(而不是通过Rails)。

我必须这样做才能让 phpMyAdmin 安装与 Apache/Passenger 上的 Rails 应用程序一起工作。

# Apache vhosts.conf
<Location ~ "/static_content"> 
  PassengerEnabled off 
</Location> 

/static_content直接从 Apache 提供内容,完全绕过 Rails。理想情况下,这是任何情况下静态内容的最佳解决方案。

于 2012-12-16T08:37:16.363 回答