草庐IT

静态分配

全部标签

ruby - 如何在 Heroku 上使用 Ruby Rack 为静态站点设置 URL

我的网站是here.它曾经是一个Django驱动的博客。但是我不再更新它所以我只是想把它变成一个静态的HTML站点。我得到了它并使用RubyRack将它移到了Heroku。但是每个URL都解析为主页。这是因为我的config.ru文件:useRack::Static,:urls=>["/media/images","/media/js","/media/css"],:root=>"public"runlambda{|env|[200,{'Content-Type'=>'text/html','Cache-Control'=>'public,max-age=86400'},File.op

ruby - Sinatra (Ruby) 中的静态页面路由

您可以通过将静态文件放在public/中(默认情况下)来使用Sinatra提供静态文件——目前我有一个index.html,但是如何我可以将根指向该文件而不必将其作为模板进行解析吗?明确地说,我可以成功访问/index.html,并且我想将/路由到同一个静态文件,但不重定向。知道如何做到这一点吗? 最佳答案 可能最终会出现更好的答案,在此之前这是我的尝试。如果这不是你想要的:get'/'doredirect'/index.html'end你可能会这样做:get'/'doFile.new('public/index.html').re

ruby - Errno::ENOMEM:无法分配内存 - cat

我有一个在生产环境中运行的工作,它处理xml文件。xml文件总计约4k,大小为8到9GB。处理后,我们得到CSV文件作为输出。我有一个cat命令,它将所有CSV文件合并到一个我得到的文件中:Errno::ENOMEM:Cannotallocatememorycat(反引号)命令。以下是一些细节:系统内存-4GB交换-2GBruby:1.9.3p286使用nokogiri和saxbuilder-0.0.8处理文件。这里有一段代码可以处理4,000个XML文件,输出以CSV格式保存(每个xml1个)(抱歉,因为公司政策,我不想分享它)。下面是将输出文件合并为一个文件的代码Dir["#{pr

ruby-on-rails - rack-mini-profiler 正在显示分析静态文件

在观看了railscast(http://railscasts.com/episodes/368-miniprofiler)之后,我正在使用rack-mini-profiler。我将它添加到我的Gemfile中:gem'rack-mini-profiler'使用bundler安装它并使用“railss”启动我的开发环境。分析工作正常,它显示在网页的左上角,但它恰好分析了所有静态文件(js、css、图像等)。它似乎也有10行的限制,因此隐藏了实际请求。是否可以配置它以避免分析静态文件? 最佳答案 好的,这是我的做法:使用了0.0.18

ruby - 在 Ruby 中,为什么 `foo = true unless defined?(foo)` 不会进行分配?

这是怎么回事?“unless”的两种形式之间的细微差别是什么?>irb(main):001:0>foo=trueunlessdefined?(foo)=>nilirb(main):002:0>unlessdefined?(fooo);fooo=false;end=>false谢谢 最佳答案 显然,ruby在解析时创建局部变量并将它们设置为nil,因此无论代码是否执行,它都会被定义并完成。当代码在第一行被计算时,它不会执行赋值部分,因为foo被设置为nil。第二行,因为fooo还没有被解析,defined?返回nil让block里面的

ruby-on-rails - 为什么对 params 哈希进行切片会对批量分配造成安全问题?

通过批量分配防止安全风险的官方方法是使用attr_accessible.然而,一些程序员认为这不是模型的工作(或者至少不是仅模型的工作)。在Controller中执行此操作的最简单方法是对params哈希进行切片:@user=User.update_attributes(params[:user].slice(:name))但是文档指出:NotethatusingHash#exceptorHash#sliceinplaceofattr_accessibletosanitizeattributeswon’tprovidesufficientprotection.这是为什么呢?为什么par

ruby - 静态网站生成

我需要一种简单的方法来生成静态网页,以便我可以使用Apache或Nginx为它们提供服务。目前我正在使用SproutCore的构建工具(Abbot)来生成静态页面,但这有点麻烦,因为它是为构建SproutCore应用程序而不是非SproutCoreHTML页面而设计的。这是我的要求:必须合并和压缩Javascript必须合并CSS文件每个图像/CSS/JavascriptAssets都必须有唯一的URL以便更好地缓存(查询字符串不够)AssetsURL只有在真正发生变化时才应该不同本地化支持全面的HTML、CSS、Javascript和图像文件带有布局、部分等的漂亮模板引擎。以下是我找

Ruby:使用 Object.send 分配变量

有什么办法可以做这样的事情吗?a=Struct.new(:c).new(1)b=Struct.new(:c).new(2)a.send(:c)=>1b.send(:c)=>2a.send(:c)=b.send(:c)最后一行导致错误:syntaxerror,unexpected'=',expecting$enda.send(:c)=b.send(:c)^ 最佳答案 a.send(:c=,b.send(:c))foo.bar=baz不是调用方法bar后跟赋值-它是调用方法bar=。因此,您需要告诉send调用该方法。

带有 block /proc/lambda 的 Ruby 双管道分配?

能写出来真是太好了@foo||="bar_default"或@foo||=myobject.bar(args)但我一直在寻找是否有办法写出类似的东西@foo||=domyobject.attr=new_valmyobject.other_attr=other_new_valmyobject.bar(args)end在实际功能代码中大致等同于类似的东西@foo=if!@foo.nil?@fooelsemyobject.attr=new_valmyobject.other_attr=other_new_valmyobject.bar(args)end而且我想我可以编写自己的全局方法(如“g

ruby - 如果哈希 ['a' ] 不存在,如何分配哈希 ['b' ] 'c' ]= ['a'?

有没有比更简单的方法ifhash.key?('a')hash['a']['b']='c'elsehash['a']={}hash['a']['b']='c'end 最佳答案 最简单的方法是constructyourHash使用block参数:hash=Hash.new{|h,k|h[k]={}}hash['a']['b']=1hash['a']['c']=1hash['b']['c']=1putshash.inspect#"{"a"=>{"b"=>1,"c"=>1},"b"=>{"c"=>1}}"new的这种形式创建了一个新的空Ha