Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
9ecdcac1
R
rails
项目概览
张重言
/
rails
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rails
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
9ecdcac1
编写于
7月 01, 2017
作者:
M
Matthew Draper
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #29349 from robertomiranda/responsive-images
Add srcset option to image_tag helper
上级
6189086c
43efae22
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
24 addition
and
3 deletion
+24
-3
actionview/CHANGELOG.md
actionview/CHANGELOG.md
+4
-0
actionview/lib/action_view/helpers/asset_tag_helper.rb
actionview/lib/action_view/helpers/asset_tag_helper.rb
+16
-2
actionview/test/template/asset_tag_helper_test.rb
actionview/test/template/asset_tag_helper_test.rb
+4
-1
未找到文件。
actionview/CHANGELOG.md
浏览文件 @
9ecdcac1
*
Add
`srcset`
option to
`image_tag`
helper.
*Roberto Miranda*
*
Fix issues with scopes and engine on
`current_page?`
method.
Fixes #29401.
...
...
actionview/lib/action_view/helpers/asset_tag_helper.rb
浏览文件 @
9ecdcac1
...
...
@@ -203,13 +203,15 @@ def favicon_link_tag(source = "favicon.ico", options = {})
# ==== Options
#
# You can add HTML attributes using the +options+. The +options+ supports
#
two
additional keys for convenience and conformance:
# additional keys for convenience and conformance:
#
# * <tt>:alt</tt> - If no alt text is given, the file name part of the
# +source+ is used (capitalized and without the extension)
# * <tt>:size</tt> - Supplied as "{Width}x{Height}" or "{Number}", so "30x45" becomes
# width="30" and height="45", and "50" becomes width="50" and height="50".
# <tt>:size</tt> will be ignored if the value is not in the correct format.
# * <tt>:srcset</tt> - If supplied as a hash or array of <tt>[source, descriptor]</tt>
# pairs, each image path will be expanded before the list is formatted as a string.
#
# ==== Examples
#
...
...
@@ -227,16 +229,28 @@ def favicon_link_tag(source = "favicon.ico", options = {})
# # => <img alt="Icon" class="menu_icon" src="/icons/icon.gif" />
# image_tag("/icons/icon.gif", data: { title: 'Rails Application' })
# # => <img data-title="Rails Application" src="/icons/icon.gif" />
# image_tag("icon.png", srcset: { "icon_2x.png" => "2x", "icon_4x.png" => "4x" })
# # => <img src="/assets/icon.png" srcset="/assets/icon_2x.png 2x, /assets/icon_4x.png 4x">
# image_tag("pic.jpg", srcset: [["pic_1024.jpg", "1024w"], ["pic_1980.jpg", "1980w"]], sizes: "100vw")
# # => <img src="/assets/pic.jpg" srcset="/assets/pic_1024.jpg 1024w, /assets/pic_1980.jpg 1980w" sizes="100vw">
def
image_tag
(
source
,
options
=
{})
options
=
options
.
symbolize_keys
check_for_image_tag_errors
(
options
)
skip_pipeline
=
options
.
delete
(
:skip_pipeline
)
src
=
options
[
:src
]
=
path_to_image
(
source
,
skip_pipeline:
options
.
delete
(
:skip_pipeline
)
)
src
=
options
[
:src
]
=
path_to_image
(
source
,
skip_pipeline:
skip_pipeline
)
unless
src
.
start_with?
(
"cid:"
)
||
src
.
start_with?
(
"data:"
)
||
src
.
blank?
options
[
:alt
]
=
options
.
fetch
(
:alt
)
{
image_alt
(
src
)
}
end
if
options
[
:srcset
]
&&
!
options
[
:srcset
].
is_a?
(
String
)
options
[
:srcset
]
=
options
[
:srcset
].
map
do
|
src
,
size
|
src_path
=
path_to_image
(
src
,
skip_pipeline:
skip_pipeline
)
"
#{
src_path
}
#{
size
}
"
end
.
join
(
", "
)
end
options
[
:width
],
options
[
:height
]
=
extract_dimensions
(
options
.
delete
(
:size
))
if
options
[
:size
]
tag
(
"img"
,
options
)
end
...
...
actionview/test/template/asset_tag_helper_test.rb
浏览文件 @
9ecdcac1
...
...
@@ -197,7 +197,10 @@ def url_for(*args)
%(image_tag("mouse.png", :alt => nil))
=>
%(<img src="/images/mouse.png" />)
,
%(image_tag("data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==", :alt => nil))
=>
%(<img src="data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" />)
,
%(image_tag(""))
=>
%(<img src="" />)
,
%(image_tag("gold.png", data: { title: 'Rails Application' }))
=>
%(<img data-title="Rails Application" src="/images/gold.png" alt="Gold" />)
%(image_tag("gold.png", data: { title: 'Rails Application' }))
=>
%(<img data-title="Rails Application" src="/images/gold.png" alt="Gold" />)
,
%(image_tag("rss.gif", srcset: "/assets/pic_640.jpg 640w, /assets/pic_1024.jpg 1024w"))
=>
%(<img srcset="/assets/pic_640.jpg 640w, /assets/pic_1024.jpg 1024w" src="/images/rss.gif" alt="Rss" />)
,
%(image_tag("rss.gif", srcset: { "pic_640.jpg" => "640w", "pic_1024.jpg" => "1024w" }))
=>
%(<img srcset="/images/pic_640.jpg 640w, /images/pic_1024.jpg 1024w" src="/images/rss.gif" alt="Rss" />)
,
%(image_tag("rss.gif", srcset: [["pic_640.jpg", "640w"], ["pic_1024.jpg", "1024w"]]))
=>
%(<img srcset="/images/pic_640.jpg 640w, /images/pic_1024.jpg 1024w" src="/images/rss.gif" alt="Rss" />)
}
FaviconLinkToTag
=
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录