V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  wadezhao  ›  全部回复第 3 页 / 共 23 页
回复总数  457
1  2  3  4  5  6  7  8  9  10 ... 23  
2019-01-11 15:19:12 +08:00
回复了 linfox 创建的主题 程序员 张小龙当年一个人搞定 foxmail 是怎样的存在?
foxmail 刚出来只是一个简单的邮件客户端,SMTP 和 POP3 协议都不复杂。张小龙是用 Delphi 写的,那时候我在 FIDO 上也写了个看信的软件,不过是 FIDO 用的,比 Email 就差多了,我还托一个朋友从张小龙那里要了一份支持彩色的 memo 编辑组件。不过那时在我看来,能自己写一个轻量又快速的支持彩色字体的 memo 组件也非常牛了。
2019-01-07 19:33:46 +08:00
回复了 lovelybear 创建的主题 程序员 感觉我们老板要发了
所以内容和标题的逻辑关系是………………
仅仅是女友的吐槽的话,确实可能是女友的问题

如果所有人对你吐槽,你都会站在对立方去思考问题,我觉得是病,得电

当然自己女友吐槽时不无脑支持,这个病也不轻,电一下可能也有帮助
2017-02-18 11:58:15 +08:00
回复了 SlipStupig 创建的主题 问与答 码农怎么能保持身体健康
码农这份工作和锻炼也不矛盾啊,任何锻炼都可以
就是削皮器,只是国内杂牌用料都很差,可以试试 muji 的,造型也没什么区别,就是柄和刃用的钢都比较厚,好用
2016-12-09 15:44:52 +08:00
回复了 wadezhao 创建的主题 Ruby on Rails 球写一段及其简单的 Ruby 代码
解决了,原来 url 这个变量的值,就是'02%E5%AE.jpg',把前面的‘\attachments\download\455\’加上去,另有其他地方处理。

在 application_helper.rb 里有一个函数: parse_inline_attachments ,是在这里解析最终输出的字符串,其中解析图片 URL 的一行是这样的:
"src=\"#{image_url}\"#{alt}"

如楼上各位指点,这一行改成
"src=\"#{File.dirname(image_url)}\"#{alt}"

就达到我的目的了。
2016-12-09 14:55:38 +08:00
回复了 wadezhao 创建的主题 Ruby on Rails 球写一段及其简单的 Ruby 代码
我找到原因了,写回页面的代码应该在别的地方还有处理,一言难尽,但我知道大概问题在哪里了,也知道各位告诉我的 File.dirname 这个函数是可用的。

多谢各位,我继续解决问题了。 :)
2016-12-09 12:35:10 +08:00
回复了 wadezhao 创建的主题 Ruby on Rails 球写一段及其简单的 Ruby 代码
@zhs227 我怀疑是正斜杠和反斜杠的问题,很可能传进去的值是这样的?

\attachments\download\455\02%E5%AE.jpg'
2016-12-09 11:52:48 +08:00
回复了 wadezhao 创建的主题 Ruby on Rails 球写一段及其简单的 Ruby 代码
@doun
@zhs227
@lightening
@liuhaotian

现在最奇怪的,是这样的。首先,我又做了一个函数:
def htmlesc_img( str, mode=:Quotes )
if str
str.gsub!( '&', '&' )
str.gsub!( '"', '"' ) if mode != :NoQuotes
str.gsub!( "'", ''' ) if mode == :Quotes
str.gsub!( '<', '&lt;')
str.gsub!( '>', '&gt;')
end
str #这个地方我叫 [A 行]
end

然后把程序中这一句:
atts = " src=\"#{ htmlesc url.dup }\"#{ atts }"
改成
atts = " src=\"#{ htmlesc_img url.dup }\"#{ atts }" #这一行我叫 [B 行]


现在最诡异的情况在于:
1 ,如果 B 行我不改动,或者说 htmlesc_img 的代码和 htmlesc 完全相同,或者干脆把 htmlesc_img 这个处理函数去掉,则会返回
/attachments/download/455/02%E5%AE.jpg
说明: url.dup 这个变量是有值的,值是待处理的正常值

2 ,如果我把 A 行改为: File.dirname('/attachments/download/455/02%E5%AE.jpg'),可以正常输出
/attachments/download/455
这说明: atts 这个变量后续并没有被再处理,并且 File.dirname 这个函数执行的结果也是正常的

3 , A 行如果改成
v_temp = ''
v_temp = v_temp+ File.dirname(str)
或者
v_temp = File.dirname(str)
或者
File.dirname(str)
则返回的字符串是
. (就是一个点儿)

A 行如果改成
str.split("/")[0..-2].join("/")
则干脆返回一共空字符串

也就是说,无论我怎么改,也没办法在 htmlesc_img 这个函数内,把 str 这个变量处理,让这个函数返回正确的内容,这太诡异了…………
2016-12-09 11:16:03 +08:00
回复了 wadezhao 创建的主题 Ruby on Rails 球写一段及其简单的 Ruby 代码
@lightening 这个方法我试过了,返回的是空(或者是'./'),很奇怪吧
2016-12-08 23:41:12 +08:00
回复了 wadezhao 创建的主题 Ruby on Rails 球写一段及其简单的 Ruby 代码
@zhs227 我直接把 shelve 删掉了,这一行改成
out << "<img#{ atts } />"
输出没区别。而且看 19 楼我的新发现,应该还是这个 htmlesc 函数的问题


@doun 是的,实际我是又做了一个 htmlesc_img 函数,只在这个地方用 htmlesc_img 函数。上面一直没说,只是方便讨论。
redmine 在 Linux 下没问题,我在 Windows 上用 Bitnami 现成的安装包,根本不需要懂 Ruby ,很容易就部署,但就是有这个中文文件名的问题,我看网上很多人说,而且最新版的 Redmine 一样有这个问题,应该是 Ruby 或者 Windows 的问题。
我用的是工具,是 Redmine ,不是 Ruby ,如果没这个 Bug , Redmine 是很好的一个工具。
2016-12-08 23:36:50 +08:00
回复了 wadezhao 创建的主题 Ruby on Rails 球写一段及其简单的 Ruby 代码
奇怪,函数最后一行的
str
我改成
File.dirname('/attachments/download/455/02%E5%AE.jpg')
可以正常输出 /attachments/download/455

但是如果改成
File.dirname(str)
输出就成空字符串了,百思不得其解………………
2016-12-08 22:10:21 +08:00
回复了 wadezhao 创建的主题 Ruby on Rails 球写一段及其简单的 Ruby 代码
@lightening
嗯,谢谢。
是这样,原始的代码,最终体现到页面上,是这样的:

<img src="/attachments/download/455/02%E5%AE.jpg">

但是这张图片并不显示,如果你直接点击这个图片,会提示一段 HTML 代码,说这个文件不存在,而不存的文件名,并不是"02%E5%AE.jpg",而是一个“乱码.jpg ”,换句话说,直接点击,会告诉你

http://URL/attachments/download/455/乱码乱码乱码.jpg 不存在

看上去,像是 Windows 下的 Ruby ,或者是源代码,对中文文件名的处理有一点问题。
所以我就寻找解决方案,最彻底的方案当然是找到乱码的原因,不过这个不好找,我找了一个妥协的方案,那就是,我发现其实直接把文件名去掉的话,是能显示的,就是说

<img src="/attachments/download/455/">

是可以正常显示的。所以我就想,只要能找到生成这一段代码的 Ruby 源码,生成的字符串,将最后一个“/”之后的字符全删掉,不就行了么?
于是我就找到了这一部分,这一部分的源码是这样的:

def inline_textile_image( text )
text.gsub!( IMAGE_RE ) do |m|
stln,algn,atts,url,title,href,href_a1,href_a2 = $~[1..8]
htmlesc title
atts = pba( atts )
atts = " src=\"#{ htmlesc url.dup }\"#{ atts }"
atts << " title=\"#{ title }\"" if title
atts << " alt=\"#{ title }\""
# size = @getimagesize($url);
# if($size) $atts.= " $size[3]";

href, alt_title = check_refs( href ) if href
url, url_title = check_refs( url )

out = ''
out << "<a#{ shelve( " href=\"#{ href }\"" ) }>" if href
out << "<img#{ shelve( atts ) } />"
out << "</a>#{ href_a1 }#{ href_a2 }" if href

if algn
algn = h_align( algn )
if stln == "<p>"
out = "<p style=\"float:#{ algn }\">#{ out }"
else
out = "#{ stln }<div style=\"float:#{ algn }\">#{ out }</div>"
end
else
out = stln + out
end

out
end
end

虽然我不懂 Ruby ,不过看上去,这一行就是关键:

atts = " src=\"#{ htmlesc url.dup }\"#{ atts }"

看起来,生成<img>的“ src ”内容的,就是这一句,而这个 htmlesc 显然是一个函数,用于处理 URL.DUP 这个变量(这个我并不知道是什么,看字面意思似乎是将 URL 变量复制了一份?)

于是就有了我上面的问题,我找到了最初对 htmlesc 这个函数的定义,希望通过修改它来达到我的目的。

但奇怪的是,修改后,并没有如我想象的写回

<img src="/attachments/download/455/">

写回的是

<img src="">

所以我猜测,也许后面对输出的字符串还是做了什么修改,高度怀疑这几句:

out = ''
out << "<a#{ shelve( " href=\"#{ href }\"" ) }>" if href
out << "<img#{ shelve( atts ) } />"
out << "</a>#{ href_a1 }#{ href_a2 }" if href

但是这个语法我就看不太懂了…………现在就卡在这里了………………
2016-12-08 19:31:00 +08:00
回复了 wadezhao 创建的主题 Ruby on Rails 球写一段及其简单的 Ruby 代码
@liprais
@lightening
还有一个可能,你们两个的方法都对,但是返回的字符串在别的地方还有处理,识别出了尾部不是图片扩展名,又对字符串做了一些操作,导致最终显示在页面里的内容不对,郁闷了,我这个完全不懂 Ruby 的人还得继续去摸索……
2016-12-08 19:27:22 +08:00
回复了 wadezhao 创建的主题 Ruby on Rails 球写一段及其简单的 Ruby 代码
@liprais 谢谢,不过我完全不懂 Ruby ,是把函数最后一行
str
换成
str.split("/")[0..-2].join("/")
么?貌似不行。


@lightening 谢谢。见上,我把
str
换成
File.dirname(str)+ "/"
貌似不行……


@Jodal 你这个我就完全看不懂了…………
2016-12-08 17:20:48 +08:00
回复了 wadezhao 创建的主题 Ruby on Rails 球写一段及其简单的 Ruby 代码
哦,忘记说谢谢了。

谢谢。
必须是你,是你是你就是你~~
2016-11-11 15:41:07 +08:00
回复了 taozhijiangscu 创建的主题 MacBook Pro 13.3 MBP 大家平常用啥电脑包啊?
@taozhijiangscu 嫌贵就和我一样,用 incase 的山寨吧:一佳。
克拉玛依也去过十几次了,但新疆其他地方去的次数和时间都比较少。

同事们都说克拉玛依和新疆其他地方不同,这是一个新“创造”出来的城市,完全是因为石油的缘故。这里的汉人比例很高,和传统的新疆城市还是不太一样。
1  2  3  4  5  6  7  8  9  10 ... 23  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3391 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 50ms · UTC 10:42 · PVG 18:42 · LAX 03:42 · JFK 06:42
Developed with CodeLauncher
♥ Do have faith in what you're doing.