Tag: angularjs

Rails 4 Asset Pipeline:来自js的asset_path中的资产缺失指纹

我正在部署一个Rails 4.0应用程序,其中包含HTML部分模板作为我们的前端JavaScript框架的资产。 虽然这些模板是资产管道的一部分并且已正确预编译,但当我在js文件中从嵌入式ruby调用asset_path时,它会返回没有指纹的模板路径。 我很确定这纯粹是一个资产管道问题,但为了让您对我们的技术堆栈有一个完整的认识:我们使用Rails 4.0,Ruby 2.1,AngularJS作为我们的前端MVC框架,以及AssetSync在Rails之间同步我们的资产和我们的CDN。 发生这种情况的一个示例(在app/assets/application.js.erb包含的文件中: $routeProvider .when(‘/’, { templateUrl: “”, controller: “HomeController” }); 这在本地工作得很好,但是一旦生产中的config.assets.digest = true ,对asset_path的调用就不能正确地考虑指纹。 模板位于新子目录templates中的app/assets目录中。 因此,在上面的示例中,home.html资产位于app/assets/templates/home.html 。 我们的javascript本身已经预编译了,所以我认为这可能是资产预编译的顺序问题。 我注意到Rails Github上的一些问题( 1,2,3 )以及一些关于指纹未正确设置的SOpost( 1,2 ),但是找不到任何关于它们的信息。 .. 您可以提供的任何帮助或想法将非常感激。 编辑4月15日 :忘记包含我的应用程序javascript文件中的扩展名包括.erb ( app/assets/application.js.erb )。 谢谢亚历克斯抓住这个。 我在上面更新了它。 另外,按照本文关于Heroku的说明 ,我确认在生产中运行的Rails控制台中运行puts helper.asset_path(“home.html”)打印该资产的正确指纹URL。

可以grount自动包含index.html中的所有js吗?

我是新来的咕噜声。 我来自铁轨并进入棱角分明。 从我可以看到,grunt usemin可以在构建指令之间替换 ,并在grunt构建期间用单个缩小的js替换它。 这对于部署非常有用。 但是每当我在开发过程中添加新的角度控制器时,我也必须记住将它们添加到我的index.html。 这是一个麻烦,如果我移动我的function文件夹,我必须改变index.html中的所有src路径。 如果在开发中,grunt会监视我所有的src/**/*.js并自动将它们全部添加到index.html中,这将是很好的…类似于rails资产管道和资产清单,当你’时,它只需要require_tree重新发展。 您可以将文件放在任何位置,并且它可以自动使用。 对于咕噜咕噜的观察者,是否存在这样的现有解决方案或示例? 谢谢

XMLHttpRequest请求的资源上没有“Access-Control-Allow-Origin”标头

所以StackOverflow上有一些问题可以解决这个错误,但是在我检查过的10-15个问题中,我无法找到解决我的确切问题的方法。 我正在远程服务器上运行Angular应用程序(端口9000)和Rails应用程序(端口3000)。 角度应用程序通过发布请求向rails应用程序发送请求。 发出请求时,Javascript控制台会显示以下错误消息: XMLHttpRequest cannot load http://0.0.0.0:3000/api/query. No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘http://10.241.16.159:9000’ is therefore not allowed access. 从我读过的内容来看,我需要更改一下我的Rails应用程序,以便它可以接受来自其他服务器的连接(这看起来很奇怪,因为这两个应用程序都运行在同一个ec2实例上)。 我试过添加一行像 skip_before_filter :verify_authenticity_token 我的控制器在rails中,但这似乎没有任何影响。 我该如何解决这个错误?

angular-rails-templates:找不到模板

我有一个rails应用程序,使用angularjs进行客户端开发。 我尝试加载位于`app / assets / javascripts / templates /’的模板: myApp.config([‘$routeProvider’, function($routeProvider) { $routeProvider. when(‘/’, { templateUrl: ‘/index.html’, controller: ‘MainController’ }). otherwise({ redirectTo: ‘/’ }); }]); 但我总是收到一个错误:“错误:[$ compile:tpload]无法加载模板:/index.html”。 我试图将“templates”文件夹移出javascripts – app / assets / templates并将其添加到我的资产管道加载中,方法是config.assets.paths << Rails.root.join("app","assets","templates")添加到config / application.rb: config.assets.paths << Rails.root.join("app","assets","templates") 在我使用模板的完整路径之前,我一直收到相同的错误消息: templateUrl: ‘/assets/index.html’, 为什么第一种方法不够用? angular-rails-templates gem不应该在app / assets / javascripts / templates中查找模板? 为什么我要使用javascript中的资源的完整路径?

适用于Angular的Rails应用程序:HAML + Rails助手

我正在尝试将我的全栈导轨应用程序一次移动到Angular页面。 我正在使用ui-router( https://github.com/angular-ui/ui-router )和angular-rails-templates( https://github.com/pitr/angular-rails-templates )。 我假设nghaml扩展允许我继续在我的haml中使用rails帮助程序,例如link_to,path等,所以只需将我的haml页面复制并粘贴到模板中; 在一个理想的世界中,我现在处于一个页面,即客户端提供一个页面,而其他每个页面(包括它链接到的页面)仍然在服务器端提供服务。 相反,我得到的错误如下: undefined local variable or method `dashboard_patients_path’ for # 和link_to等 我认为这个( 带有客户端haml的angularjs )将是一个可靠的解决方案,特别是sharpper的响应,因为它似乎直接适用。 module CustomHamlEngine class HamlTemplate < Tilt::HamlTemplate def evaluate(scope, locals, &block) scope.class_eval do include Rails.application.routes.url_helpers include Rails.application.routes.mounted_helpers include ActionView::Helpers end super end end end Rails.application.assets.register_engine '.haml', CustomHamlEngine::HamlTemplate 但是,即使重新启动服务器,也没有骰子。 思考?

如何将Rails视图与angularjs ng-view集成?

我创建了rails视图(ERB)。 但是,我想将它集成到angularjs $routeProvider ,但我不知道我应该填写什么url到templateUrl以给我相应的rails视图。 例如,我尝试过: $routeProvider.when(‘/pages/foo’, { templateUrl: “/pages/foo”, controller: “PageFoo” }) 但结果显示为空白页面。 这两个function是否可以整合? 或者我是否必须创建新的.html文件,而不是使用预先存在的.html.erb

在url中#/表示什么?

我正在研究ROR网络应用程序。 我的网页url如下所示 – http://dev.ibiza.jp:3000/facebook/report?advertiser_id=2102#/dashboard 在这里我理解advertiser_id是2102,但我无法理解#/ dashboard指向的是什么?

Rails复制了资源中的参数

我正在使用Angular资源,我不明白为什么Rails重复参数并将其放在资源名称中。 我只需要了解为什么会这样。 // post data {“title”:”asdsad”} // rails parameters Parameters: {“title”=>”asdsad”, “presentation”=>{“title”=>”asdsad”}} 重复,因为欢迎来到Stackoverflow,你需要50点评论,所以这发生了。 我真的很抱歉: AngularJS $资源发出额外的“注册”哈希?

AngularJS和Rails路由错误

我正在关注教程: https : //thinkster.io/angular-rails/ 当我进入该部分时:将前端与资产管道集成,事情就会破裂; 网站陷入无限循环,并不断产生相同的错误。 我检查并重新检查了每一步。 请有人帮忙: 错误: Started GET “/home/_home.html” for ::1 at 2015-04-17 11:55:43 -0400 ActionController::RoutingError (No route matches [GET] “/home/_home.html”): actionpack (4.2.0) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call’ web-console (2.1.2) lib/web_console/middleware.rb:37:in `call’ actionpack (4.2.0) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call’ railties (4.2.0) lib/rails/rack/logger.rb:38:in `call_app’ railties (4.2.0) lib/rails/rack/logger.rb:20:in `block in call’ activesupport (4.2.0) lib/active_support/tagged_logging.rb:68:in `block in tagged’ activesupport (4.2.0) lib/active_support/tagged_logging.rb:26:in […]

在rails上使用angularjs和ruby时出现未知的提供程序电子提供程序错误

我有一个Rails / AngularJS应用程序,可以在本地开发环境中正常工作。 但是,当我将此应用程序部署到Amazon Cloud时,AngularJS会在浏览器控制台中返回此错误: Unknown provider: eProvider <- e 但它在开发环境中工作正常。 我从我的一个javascript文件访问以下服务..例如: – userList. storeActorListWithId() 我的服务如下: – woi.service(‘userList’,[‘$rootScope’, ‘userAPI’ , ‘recoAPI’, function($rootScope, userAPI, recoAPI){ var actorList = []; var actorId = “”; return{ storeActorListWithId: function(data){ actorList = []; angular.forEach(data,function(actor){ if(actor.castname) { actorList.push({name: actor.castname,id: actor.castid}); } }) } , getActorListWithId: function(){ return actorList; }, storeActorId: function(id){ […]