我想知道如何在线实现用户代码的展示。我正在构建一个Rails应用程序,我希望用户能够使用多个交互文件上传代码项目,并允许它们在页面中显示。举个例子,我希望能够上传一个用javascript编写并在HTML canvas元素中渲染的Asteroids游戏;这个项目中包含的文件如下:
Asteroids/
|- asteroids.js
|- app.js
|- ship.png
|- planet.png
|- index.html
|- underscore.min.js
|- keymaster.min.js
理想情况下,我可以上传包含文件夹并在iframe中呈现html文件,并且可以访问所有必需的js / image文件。我想知道这是否可行,如果是的话,如何实施?
答案 0 :(得分:1)
因此,如果我理解正确,您希望用户能够上传现有的静态Web项目(html,js,css),然后通过提供指向它们的链接来展示它们。
首先,这正是网络托管服务提供商多年来一直在做的事情,它通过对网络服务器中的各个目录提供ftp或ssh访问权限。除了您将在一个页面上列出您的所有网站。
了解如何使用ror(非常一般)从Web界面执行此操作:
提供表单以创建Web项目。 (在控制器的公共目录中创建一个目录)。
同样提供表单来创建文件夹结构。 (如果所有用户在一个文件夹中都有文件,则不需要跳到第3步)。
现在,在每个创建的文件夹中,您可以使用jquery-file-upload与railswave gem结合使用,将多个文件上传到每个文件夹。
多数民众赞成,您现在应该可以创建公共目录中的项目列表,并将用户指向它们。
您现在也可以使用iframe中的单个项目,因为您有完整的项目,包括html坐在您的公共文件夹中。
最后,让人们将代码上传到您的服务器涉及到be ware或安全威胁。最好将这些文件直接上传到amazon s3。
以下是一些可以帮助您入门的参考资料。
Sample project showing jquery-file-upload integration with carrierwave in rails
如果有帮助,请告诉我,否则我就会离开标记