同时调查谷歌搜索引擎优化问题有关没有移动网站。我最近了解到,缺乏合适的移动网站会降低搜索率,而移动网站和桌面网站的不同内容可能也会损害你的搜索引擎优化。
目前,我们有一个MVC网站,设计不是为了响应。我不想创造一些需要更多维护的东西。(即新的移动站点或为移动版本创建新视图…)。
我了解到,从技术上讲,将站点转换为响应站点是可行的,但不建议这样做,原因如下:
当前站点在小屏幕上可能无法正常工作(css问题,修改css可能是一个痛苦和风险)。
我们现在网站上的东西太多了。
在谷歌搜索时,我发现这是最好的方法。
对桌面和移动浏览器使用相同的控制器和视图,但是根据设备类型使用不同的Razor布局呈现视图。此选项将要求移动设备使用新的css和新的_Layout页面。
然后将_ViewStart修改为
Layout = Request.Browser.IsMobileDevice ? "~/Views/Shared/_LayoutMobile.cshtml" :"~/Views/Shared/_Layout.cshtml";
最佳答案
处理响应性设计通常有三种方法:
使用响应式设计框架
使用css媒体查询
使用百分比
每一个项目的易用性最终都将取决于你现有项目的复杂程度,以及你愿意做多少工作和做出多少改变以使其响应。
考虑一个响应式设计框架(基本上是修改和更新现有项目的所有标记)
这将允许你的网站或应用程序基本上运行在任何设备上(这样做看起来很好),无论平台是什么,只要它有一个互联网浏览器来访问它,这将使它更容易开发,因为你只需要在一个区域内创建你的页面,而且响应速度很快。esign是它将根据当前平台和设备适当地设置页面的样式。
它并不是真的自动的,你可能需要对它稍加修改,使所有的东西都能正常工作和看起来,但它可能是处理这种情况的最佳方法(取决于你正在使用的控件)。有响应性的设计框架和样板,您可以用来实现这些到您的网站,如Twitter Bootstrap。
这些可以很容易地集成到web表单、mvc或web页面中,基本上就是您需要使用的全部内容:
Great MSDN Article on Responsive Design
Tutorial on Integrating Twitter Boostrap into ASP.NET Web Forms
Beautify your ASP.NET Application with Twitter Bootstrap
在这里使用框架的主要问题是,您已经设计并运行了站点。当您从项目开发开始就使用这些框架时,它们工作得非常好,但是当您试图将现有项目迁移到使用它们时,它们将需要大量的工作。
这些框架有非常特定的类和样式,实际上它们在响应式设计方面做了很多不同的事情,您必须使用这些新类来基本上替换所有现有的类。这不会是最容易的迁移,但无论如何这肯定不是不可能的,这将是我的建议。
使用CSS Media Queries(如果您想在没有框架的情况下创建这种响应性,这是必要的,但是您需要做更多的工作)
您还可以使用css媒体查询来实现这一点,该查询针对特定的分辨率、屏幕大小和样式元素,但是这需要更多的手动操作,并且您必须为每个目标大小编写查询。
与使用框架相比,这将需要更多的工作,因为您必须编写查询以针对所有不同的主要分辨率,然后在每个主要分辨率中手动调整一些元素的大小。基本上,您必须为每个要针对的分辨率创建一个迷你样式表或媒体查询,并手动输入要用于该特定分辨率的值。
我以前做过这种更“动手”的响应式设计,但是让像某个框架这样经过尝试和验证的东西为您处理起来要容易得多。查看下面的简单示例,该示例将演示css媒体查询的工作原理:
<style type='text/css'>
/* Only affects 1600px width */
@media only screen and (max-width: 1600px){ body { background: green; }}
/* Only affects 1200px width */
@media only screen and (max-width: 1200px){ body { background: blue; }}
/* Only affects 900px width */
@media only screen and (max-width: 900px){ body { background: yellow; }}
/* Only affects 600px width */
@media only screen and (max-width: 600px){ body { background: purple; }}
/* Only affects 400px width */
@media only screen and (max-width: 400px){ body { background: orange; }}
</style>
(>
关于mobile - 将MVC网站转换为响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30538613/
我的目标是转换表单输入,例如“100兆字节”或“1GB”,并将其转换为我可以存储在数据库中的文件大小(以千字节为单位)。目前,我有这个:defquota_convert@regex=/([0-9]+)(.*)s/@sizes=%w{kilobytemegabytegigabyte}m=self.quota.match(@regex)if@sizes.include?m[2]eval("self.quota=#{m[1]}.#{m[2]}")endend这有效,但前提是输入是倍数(“gigabytes”,而不是“gigabyte”)并且由于使用了eval看起来疯狂不安全。所以,功能正常,
我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h
我需要读入一个包含数字列表的文件。此代码读取文件并将其放入二维数组中。现在我需要获取数组中所有数字的平均值,但我需要将数组的内容更改为int。有什么想法可以将to_i方法放在哪里吗?ClassTerraindefinitializefile_name@input=IO.readlines(file_name)#readinfile@size=@input[0].to_i@land=[@size]x=1whilex 最佳答案 只需将数组映射为整数:@land边注如果你想得到一条线的平均值,你可以这样做:values=@input[x]
这道题是thisquestion的逆题.给定一个散列,每个键都有一个数组,例如{[:a,:b,:c]=>1,[:a,:b,:d]=>2,[:a,:e]=>3,[:f]=>4,}将其转换为嵌套哈希的最佳方法是什么{:a=>{:b=>{:c=>1,:d=>2},:e=>3,},:f=>4,} 最佳答案 这是一个迭代的解决方案,递归的解决方案留给读者作为练习:defconvert(h={})ret={}h.eachdo|k,v|node=retk[0..-2].each{|x|node[x]||={};node=node[x]}node[
我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie
在Ruby中可以使用哪些替代方法来ping一个ip地址?标准库“ping”库的功能似乎非常有限。我对在这里滚动我自己的代码不感兴趣。有没有好的gem?我应该接受它并忍受它吗?(我在Linux上使用Ruby1.8.6编写代码) 最佳答案 net-ping值得一看。它允许TCPping(如标准rubyping),但也允许UDP、HTTP和ICMPping。ICMPping需要root权限,但其他则不需要。 关于ruby-Pingruby网站?,我们在StackOverflow上找到一个类
我正在使用Rails构建一个简单的聊天应用程序。当用户输入url时,我希望将其输出为html链接(即“url”)。我想知道在Ruby中是否有任何库或众所周知的方法可以做到这一点。如果没有,我有一些不错的正则表达式示例代码可以使用... 最佳答案 查看auto_linkRails提供的辅助方法。这会将所有URL和电子邮件地址变成可点击的链接(htmlanchor标记)。这是文档中的代码示例。auto_link("Gotohttp://www.rubyonrails.organdsayhellotodavid@loudthinking.
我收到格式为的回复#我需要将其转换为哈希值(针对活跃商家)。目前我正在遍历变量并执行此操作:response.instance_variables.eachdo|r|my_hash.merge!(r.to_s.delete("@").intern=>response.instance_eval(r.to_s.delete("@")))end这有效,它将生成{:first="charlie",:last=>"kelly"},但它似乎有点hacky和不稳定。有更好的方法吗?编辑:我刚刚意识到我可以使用instance_variable_get作为该等式的第二部分,但这仍然是主要问题。
2022/8/4更新支持加入水印水印必须包含透明图像,并且水印图像大小要等于原图像的大小pythonconvert_image_to_video.py-f30-mwatermark.pngim_dirout.mkv2022/6/21更新让命令行参数更加易用新的命令行使用方法pythonconvert_image_to_video.py-f30im_dirout.mkvFFMPEG命令行转换一组JPG图像到视频时,是将这组图像视为MJPG流。我需要转换一组PNG图像到视频,FFMPEG就不认了。pyav内置了ffmpeg库,不需要系统带有ffmpeg工具因此我使用ffmpeg的python包装p
我需要一个通过输入字符串进行计算的方法,像这样function="(a/b)*100"a=25b=50function.something>>50有什么方法吗? 最佳答案 您可以使用instance_eval:function="(a/b)*100"a=25.0b=50instance_evalfunction#=>50.0请注意,使用eval本质上是不安全的,尤其是当您使用外部输入时,因为它可能包含注入(inject)的恶意代码。另请注意,a设置为25.0而不是25,因为如果它是整数a/b将导致0(整数)。