我尝试在每个网址结尾处获得一个"/":
example.com/art
应该
example.com/art/
我使用nginx作为webserver.
我需要重写规则..
为了更好地理解,请检查:
http://3much.schnickschnack.info/art/projekte
如果你按下大图下的一个小缩略图,它会重新加载并显示这个网址:
http://3much.schnickschnack.info/art/projekte/#0
如果我现在在所有网址上都有一个斜杠(最后),那么无需重新加载网站即可.
现在我在nginx-http.conf中有这个设置:
server {
listen *:80;
server_name 3much.schnickschnack.info;
access_log /data/plone/deamon/var/log/main-plone-access.log;
rewrite ^/(.*)$ /VirtualHostBase/http/3much.schnickschnack.info:80/2much/VirtualHostRoot/$1 last;
location / {
proxy_pass http://cache;
}
}
Run Code Online (Sandbox Code Playgroud)
如何配置nginx以添加斜杠?(我想我应该重写规则?)
我在HAML中有一个相当简单的Rails远程表单,部分在共享/用户之下:
- remote_form_for :user, :url => { :controller => "users", :action => "create" } do |f|
.field
= f.label :name, t('name')
= f.text_field :name
.field
= f.label :email, t('email')
= f.text_field :email
.actions
= f.submit
Run Code Online (Sandbox Code Playgroud)
无论我多么愚弄它,这都行不通.我总是得到以下错误:
undefined method `remote_form_for' for #<#<Class:0x1036e8e40>:0x1036dfd90>
Run Code Online (Sandbox Code Playgroud)
我做了些蠢事吗?它与form_for完美配合.
我在我们的网站上使用refinerycms让技术水平较低的员工更新内容.在gem中,它们有一个Page类,用于映射站点上的每个顶级页面.我想在这个Page类上使用acts_as_taggable gem.现在我可以将acts_as_taggle声明直接添加到page.rb文件中,但是我必须维护一个单独的git repo来跟踪我的版本和官方发行版之间的差异.
基于SO的其他一些问题,我创建了一个初始化器和扩展器,如下所示:
LIB/page_extensions.rb:
module Pants
module Extensions
module Page
module ClassMethods
def add_taggable
acts_as_taggable
end
end
def self.included(base)
base.extend(ClassMethods).add_taggable
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
配置/初始化/ pants.rb
require 'page_extensions'
Page.send :include, Pants::Extensions::Page
Run Code Online (Sandbox Code Playgroud)
应用程序/视图/布局/ application.html.erb
...
Tags: <%= @page.tag_list %>
Run Code Online (Sandbox Code Playgroud)
我第一次从服务器请求页面时它正确输出页面上的所有标签.但是,如果我点击刷新I而不是NoMethodError
指示tag_list未定义.
我是rails的新手,所以也许我的假设是错误的,但我预计对Page.send的调用会对Page类进行永久性更改,而不是对类的特定实例进行更改.那么如何在每个请求中将acts_as_taggable添加到Page类?
我在Ruby on Rails中生成上传图像的校验和(sha256).
upload = params[:file]
data1 = upload.read
data2 = File.read(upload.tempfile)
checksum1 = Digest::SHA256.hexdigest(data1)
checksum2 = Digest::SHA256.hexdigest(data2)
puts checksum1
puts checksum2
Run Code Online (Sandbox Code Playgroud)
最后两个语句返回不同的值.checksum1是通过使用UploadedFile对象读取数据生成的.checksum2是通过从文件系统读取临时文件生成的.
ActionDispatch :: Http :: UploadedFile的对象是否返回比上传文件的内容更多的内容?当我生成写入文件系统的上传文件的校验和时,它与checksum2
(临时文件校验和)匹配,而不是与checksum1
(UploadedFile.read)匹配.
我假设通过从文件系统读取临时文件生成的校验和更可靠,因为对象(UploadedFile)实现可能会更改.如果需要,可以更轻松地生成文件系统上现有文件的校验和.
那么,校验和差异的原因是什么,哪一个更可靠?
谢谢.
更新1:根据@ pablo-castellazzi的建议,我使用Digest :: SHA256.file(upload.path).hexdigest生成哈希.我们称之为校验和3
checksum3等于checksum1但与checksum2不同
更新2:如果我使用二进制模式读取@ Arsen7提到的文件,那么所有校验和都是相同的.
任何人都可以告诉我为什么我的内部行不会进入td.
<tr id="group_1_id">
<th>Group 1</th>
<td>
<tr id="1"><td>1</td><td>One</td><td><input type="text" name="one" value="one"/></td></tr>
<tr id="2"><td>2</td><td>Two</td><td><input type="text" name="two" value="two"/></td></tr>
<tr id="3"><td>3</td><td>Three</td><td><input type="text" name="three" value="three"/></td></tr>
</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
3个表行位于父tr之外.虽然它们是在我的父tr的td内定义的.
提前致谢