我正在使用Rails 3.1.1并在我的assets-folder中有样式表:
也在子文件夹/ admin /我有admin.css.总而言之
现在,通过使用:
<%= stylesheet_link_tag 'application' %>
Run Code Online (Sandbox Code Playgroud)
...(这似乎是默认的)我希望它只加载application.css但它不仅加载application.css而且加载abc.css.scss等.
<link href="/assets/application.css?body=1" media="screen" rel="stylesheet" type="text/css" />
<link href="/assets/admin/admin.css?body=1" media="screen" rel="stylesheet" type="text/css" />
<link href="/assets/affiliate_types.css?body=1" media="screen" rel="stylesheet" type="text/css" />
<link href="/assets/benefits.css?body=1" media="screen" rel="stylesheet" type="text/css" />
<link href="/assets/buy_this_ifs.css?body=1" media="screen" rel="stylesheet" type="text/css" />
Run Code Online (Sandbox Code Playgroud)
另外,它在/ admin/-subfolder中加载admin.css.据我所知,递归被默认为假,所以它不应该,对吧?
无论如何,我试过:
<%= stylesheet_link_tag 'application', :recursive => false %>
Run Code Online (Sandbox Code Playgroud)
它仍然加载了admin/admin.css.换句话说,与上面的结果相同.
如果我尝试:
<%= stylesheet_link_tag :all %>
Run Code Online (Sandbox Code Playgroud)
它只是加载一个它找不到的"all.css".
我试过变种:cache => true而:cache => false无济于事.
我的问题:
如何让rails导入所有样式表(application.css,abc.css.scss等)但不是admin/admin.css?
如何使admin.css继承自application.css?我只想拥有管理界面的独特功能(例如不同的车身颜色).
我想在 Heroku 上的应用程序上运行一个 rake 脚本,这将需要几个小时。如果我从笔记本电脑的控制台启动它,然后关闭我的笔记本电脑,脚本将停止(并且我将不得不在脚本完成之前关闭我的笔记本电脑)。
如何在不“绑定”到我的笔记本电脑的情况下启动这个 rake 脚本。即让它继续运行直到它中断或完成?
heroku run rake update_feeds_complete --app myapp
Run Code Online (Sandbox Code Playgroud)
是要运行的脚本吗...
向我提供有关向 Google 发送哪些命令等的建议也会有所帮助。
我一直在使用缓存,最近发现我的片段缓存并没有阻止我的控制器执行代码,因为它一直都是.我把问题归结为与cache_key有关,这似乎是一个新功能?
这是我以前的解决方案,不再按预期工作.
产品#显示视图:
cache('product-' + @product.id.to_s) do
# View stuff
end
Run Code Online (Sandbox Code Playgroud)
产品#显示控制器:
unless fragment_exist?('product-19834') # ID obviously dynamically loaded
# Perform slow calculations
end
Run Code Online (Sandbox Code Playgroud)
该缓存工作正常.它写入和读取片段,但它仍然执行控制器(这是我想使用缓存的全部原因).这归结为片段具有添加的唯一ID,因此创建的片段类似于:
views/product-19834/b05c4ed1bdb428f73b2c73203769b40f
Run Code Online (Sandbox Code Playgroud)
因此,当我检查fragment_exist是否正在检查正确的字符串时(因为我正在检查'views/product-19834').我也试过用:
fragment_exist?("product-#{@product.id}/#{@product.cache_key}")
Run Code Online (Sandbox Code Playgroud)
但它使用与实际创建的不同的cache_key进行检查.
我宁愿使用这个解决方案而不是控制器缓存或像互锁这样的宝石.
我的问题是: - 如何在控制器中检查考虑此缓存密钥的特定视图是否存在片段?
我已经浏览了整个互联网,但无法得到最终的解决方案,我希望100%正确设置DNS等,以便在Heroku.com上获得以下结果:
我可以从任何地方得到一些帮助,但没有任何结论可以解决从DNS到机架重写的整个问题,这就是我在这里问的原因(我的注册商和Heroku的支持只能给我"他们的部分" ).
据我所知,需要做的是:
将mydomain.com和www.mydomain.com添加到Heroku的自定义域
在我的注册商DNS中将CNAME更改为http://myapp.herokuapp.com.问题:使用CNAME重定向到myapp.herokuapp.com会是"www"还是"*"?
添加"@"DNS记录以处理裸域请求(http://mydomain.com).由于这不会使用CNAME,我使用https://devcenter.heroku.com/articles/custom-domains上的IP号码,尽管根据文章他们有严重的正常运行时间问题.
- 1-3给我留下了一个网站,该网站将同时提供http://mydomain.com和http://www.mydomain.com的内容,网址为http://myapp.herokuapp.com
C.现在,我想将所有内容从http://mydomain.com重定向到http://www.mydomain.com,并且根据Heroku的支持,这应该通过rack-rewrite来完成(https://github.com/jtrupiano /机架重写).使用那里的例子,代码应该是:
r301 %r{.*}, 'http://mydomain.com$&', :if => Proc.new {|rack_env|
rack_env['SERVER_NAME'] != 'www.mydomain.com'
}
Run Code Online (Sandbox Code Playgroud)
然而,这为我创造了一个永恒的循环.
那么,我现在的问题是:为了实现这种设置,Heroku和DNS设置的正确工作流程是什么?
对此进行故障排除非常困难,因为通过反复试验来尝试不同的DNS设置非常困难(很难知道它们是否已经通过).
我很惊讶为 AWS S3 存储桶授予只读权限是多么复杂。也许只是我,但我想有几个人使用 S3 来存储网站的图像,从而使它们可用,但只读应该是“单击并选择”选项。
相反,据我所知,您为此使用存储桶策略,使用他们的存储桶策略生成器。
我创建了这个政策,据我所知应该做我想做的:
{
"Version": "2012-10-17",
"Id": "Policy1441664301333",
"Statement": [
{
"Sid": "Stmt1441664293105",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my-bucket-name/*"
}
]
}
Run Code Online (Sandbox Code Playgroud)
其中my-bucket-name当然被替换。这在使我的图像(整个存储桶只是图像)公开可用方面起作用。由于我根本不了解此政策中的代码,而且我似乎无法找到有关它的阅读位置,因此我想验证一下:
我相信这是可以在 StackOverflow 上提出的问题的边界,但我认为这个问题很常见,因此对其他人和参考都很有趣。
使用:rails 3.2.11和New Relic(免费版).
我有一些问题,一个应用程序很慢.我已经检查了它并加速了我的应用程序.根据New Relic的说法,应用程序仍然很慢,特别是在渲染阶段.见图:
根据Pingdom的说法,它似乎是在2-4秒的时间内加载,这也是我访问网站时的体验.
我正在使用Memcachier,这会大大加快页面的速度,但是New Relic总是可以计入未缓存的控制器运行?
我最大的问题是,你能相信New Relic"平均页面加载时间"是你网站真正有多慢的关键吗?你更信任Pingdom的结果吗?
我有一个Rails网络应用程序,用户可以使用一些表单进行评论等.他们经常被垃圾邮件发送者用来尝试创建垃圾评论.没什么新鲜的.
有时我会遇到导致ActionController :: InvalidAuthenticityToken异常的CSRF-hack尝试.这种情况发生了很多,我想拯救并将用户/机器人发送到"你没有评论"页面.
事实证明这是一个棘手的例外,因为我不能自己重新创建错误.当模型(由表单创建)被保存但是它没有捕获异常时,我首先在#create中进行了拯救.为了做到这一点,我考虑让它覆盖整个控制器部分,但这似乎超过顶部.
我的两个问题:
有没有办法自己重新创建一个ActionController :: InvalidAuthenticityToken错误,所以我可以测试一下吗?
什么时候提出异常?在.save期间?在Comment.new?基本上,我应该在哪里开始/救援?
谢谢!
我刚开始使用 Anaconda,随着我的硬盘驱动器被填满,我意识到在以下目录中存在多个(大)文件作为重复项:
/anaconda3/pkgs/.../lib/<file>
/anaconda3/lib/<file>
Run Code Online (Sandbox Code Playgroud)
复制文件的示例是libmklml.dylib. 此外还有重复的文件,例如:
tensorflow-base-1.13.1-mkl_py36hc36dc97_0.tar.bz2
tensorflow-base-1.13.1-mkl_py37h66b1bf0_0.tar.bz2
Run Code Online (Sandbox Code Playgroud)
在同一个目录中。
我的猜测是 /pkgs/ 文件夹是下载时的文件,而 anaconda/lib/ 目录是执行库的位置。我很困惑为什么每个文件都有重复的版本。
我可以删除其中任何一个吗?如果可以,如何删除?我尝试过conda clean -p(以及conda clean -a),它似乎删除了大约 1.5 Gb 的文件,但没有删除这些类型的重复文件。
我知道这是编程史上最常见的问题,但我真的相信我现在已经尝试过但我仍然得到:incompatible character encodings: UTF-8 and ASCII-8BIT在我的页面#index.html文件中.
我正在运行Ruby 1.9.2和Rails 3.1.1.
这是我验证/测试/设置的内容:
在database.yml中,设置encoding:utf8
开发:适配器:mysql编码:utf8重新连接:false数据库:kopa_development pool:5用户名:root密码:host:localhost
使用Notepad ++检查术语中的文本文件是否编码为utf-8
一个有趣的事情是,如果我将index.html.erb设置为ANSI,它会抱怨application.html.erb没有正确的编码(而不是index.html.erb).我不知道这意味着什么,但它让我觉得编辑有些可疑.
我记得在使用电子文本编辑器时,我可以设置两件事(参考编码)编码和其他东西.那个"别的"我不记得它是什么,我不再有了.
关于错误消息,我是否正确理解,首先提到的是数据库编码,第二个是Rails(?)编码?我也看到了相反的错误消息(ASCII first和UTF-8 after).
编辑:我今天早上用Google搜索了一些,发现mysql-gem有问题.文章有点旧,我尝试了解决方案(如尝试mysql2和ruby-mysql)没有更好的运气.
我完全没有想法.你呢?