我正在创建一个Ruby on Rails应用程序,我想在前端使用AngularJS。 我打算使用以下文件结构(来自here)作为前端:
angularapp/
----- shared/ // acts as reusable components or partials of our site
---------- sidebar/
--------------- sidebarDirective.js
--------------- sidebarView.html
---------- article/
--------------- articleDirective.js
--------------- articleView.html
----- components/ // each component is treated as a mini Angular app
---------- home/
--------------- homeController.js
--------------- homeService.js
--------------- homeView.html
---------- blog/
--------------- blogController.js
--------------- blogService.js
--------------- blogView.html
----- app.module.js
----- app.routes.js
我有三个主要问题:
1 - 我希望我的整个角度应用程序能够通过Ruby on Rails的资产流水线功能
2 - 我不想打破我的角度应用程序的结构并将其文件移动到相应的Rails资产文件夹。
3 - 我不想将我的角度应用程序放在assets / javascripts文件夹下,因为它不仅包含javascript文件。
将此结构与Ruby on Rails应用程序集成的最简洁方法是什么?
答案 0 :(得分:5)
我做了一些研究。事实证明,将AngularJS与Ruby on Rails集成的最简洁方法是将它们集成到一个Ruby on Rails应用程序的上下文中。相反,最好将它们完全分开,就像@Minhail建议的那样。
正如布拉德卡尔顿在this article中建议的那样:
将整个项目整齐地塞进其中一个项目的一个缺点 今天的怪物框架,如Rails,Django或MVC,就是它可以 前端开发人员很难从事该项目。
虽然经验丰富的Ruby dev可能很容易设置rvm,gem 安装所有ruby依赖项,处理本机扩展和 跨平台问题。这些东西可能不是你的 前端开发人员最适合。
后来在文章中他建议更好的架构是保持前端和后端完全分离:
它还促进使前端成为真正的一流应用程序 并确保它真正健壮。希望是前端 现在鼓励开发人员为不可避免的情况编写代码 后端发生故障。
更好的用户体验是,“嘿,我们遇到了一些问题 现在使用服务器,稍后再试“甚至更好”搜索 服务似乎目前有问题,但你仍然可以 查看您的个人资料和当前项目。“
根据另一篇文章here,单页应用程序和Api驱动开发是2015年的两个Web开发趋势。我认为这是一个事实,它强烈鼓励前端和后端分离的想法。
这是一个很好的例子,一步一步的演练:
答案 1 :(得分:1)
我使用AngularJS有一个Ruby on Rails应用程序。我也使用了功能结构,我的所有文件都在/assets/javascript/
中。您应该在/config/environments/production.rb
中添加所有js和css文件以预编译它们以进行生产。 production.rb
的示例:
config.assets.precompile += %w{
topbar/topbar-controller.js
topbar/topbar-service.js
topbar/topbar-directives.js
topbar/topbar.css
# ... other features
}