1

我想知道如何在线实现用户代码的展示。我正在构建一个 Rails 应用程序,我希望用户能够上传具有多个交互文件的代码项目,并允许它们在页面中显示。举个例子,我希望能够上传一个用 javascript 编写并在 HTML 画布元素中呈现的 Asteroids 游戏;此类项目中包含的文件如下:

Asteroids/
   |- asteroids.js
   |- app.js
   |- ship.png
   |- planet.png
   |- index.html
   |- underscore.min.js
   |- keymaster.min.js

理想情况下,我将能够上传包含文件夹并在 iframe 中呈现 html 文件,并可以访问所有必要的 js/image 文件。我想知道这是否可行,如果可以,如何实施?

4

1 回答 1

1

因此,如果我理解正确,您希望用户能够上传现有的静态 Web 项目(html、js、css),然后通过提供指向它们的链接来展示它们。

首先,这正是网络托管服务提供商多年来一直在做的事情,他们通过提供对网络服务器中相应目录的 ftp 或 ssh 访问权限。除了您将在一个页面上列出您的所有网站。

谈到如何使用 ror 从 Web 界面执行此操作(非常通用):

  1. 提供一个表单来创建一个网络项目。(在控制器的公共目录中创建一个目录)。

  2. 同样提供表单来创建文件夹结构。(如果您的所有用户在一个文件夹中都有文件,则不需要在这种情况下跳到第 3 步)。

  3. 现在在每个创建的文件夹中,您可以使用 jquery-file-upload 与 rails 中的carrierwave gem 将多个文件上传到每个文件夹。

  4. 就是这样,您现在应该能够创建您在公共目录中拥有的项目列表并将用户指向它们。

  5. 您现在还可以在 iframe 中单独项目,因为您有完整的项目,包括 html 放在您的公共文件夹中。

  6. 最后要注意让人们将代码上传到您的服务器所涉及的安全威胁。最好将这些文件直接上传到 amazon s3。

以下是一些可以帮助您入门的参考资料。

在 CarrierWave 上铸造的 Rails

示例项目显示 jquery-file-upload 与 rails 中的carrierwave 集成

示例项目展示了如何使用 amazon s-3 作为存储,并在 rails 中上传 jquery 文件和 carrirwave

让我知道这是否有帮助,或者我离题了

于 2013-08-14T14:59:42.187 回答