做新项目,当时参考NopCommerce的结构,后台Nop.Admin是一个独立的Area Web Site,但部署的时候发现,使用一键发布,Admin Area会丢失。
研究了下NopCommerce的做法,使用MSBuild组织文件结构,关键的地方在下面:
<!--Now lets publish Nop.Admin-->
<MSBuild Projects=
"$(RootFolder)\Presentation\Nop.Web\Administration\Nop.Admin.csproj"
Targets=
"ResolveReferences;_CopyWebApplication"
Properties="WebProjectOutputDir=$(DeployFolder)\$(DeployPrefix)\Administration\;
OutDir=$(DeployFolder)\$(DeployPrefix)\Administration\bin\;Configuration=$(Configuration)" />
<!--Now lets move the Nop.Admin/bin/ to the root bin/-->
<CreateItem Include=
"$(DeployFolder)\$(DeployPrefix)\Administration\bin\*.dll"
>
<Output TaskParameter=
"Include"
ItemName=
"CompileOutput"
/>
</CreateItem>
<Copy SourceFiles=
"@(CompileOutput)"
DestinationFolder="$(DeployFolder)\$(DeployPrefix)\bin\" />
<!--Lets delete the bin
in
Nop.Admin-->
<RemoveDir Directories="$(DeployFolder)\$(DeployPrefix)\Administration\bin\" />
<!--Lets delete the packages.config files-->
<Delete Files="$(DeployFolder)\$(DeployPrefix)\Administration\packages.config;
$(DeployFolder)\$(DeployPrefix)\packages.config"/>
|
然后是如何替换配置文件:
使用Web.Release.config替换Web.config
1
2
3
4
5
|
<!--Transform support-->
<UsingTask TaskName=
"TransformXml"
AssemblyFile=
"$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Web\Microsoft.Web.Publishing.Tasks.dll"
/>
<!--Transform root web.config file-->
<TransformXml Condition=
"Exists('$(WebFolder)\Web.$(Configuration).config')"
Source=
"$(WebFolder)\Web.config"
Transform=
"$(WebFolder)\Web.$(Configuration).config"
Destination=
"$(DeployFolder)\$(DeployPrefix)\Web.config"
/>
|
使用Settings.Release.txt替换Settings.txt
1
2
3
4
5
6
7
8
|
<!--Lets Copy \App_Data\Settings.Release.txt To \App_Data\Settings.txt -->
<Copy Condition=
"Exists('$(WebFolder)\App_Data\Settings.$(Configuration).txt')"
SourceFiles=
"$(WebFolder)\App_Data\Settings.$(Configuration).txt"
DestinationFiles=
"$(DeployFolder)\$(DeployPrefix)\App_Data\Settings.txt"
SkipUnchangedFiles=
"true"
OverwriteReadOnlyFiles=
"true"
/>
<!--Lets delete the Seetings.Release.txt file-->
<Delete Condition=
"Exists('$(DeployFolder)\$(DeployPrefix)\App_Data\Settings.$(Configuration).txt')"
Files=
"$(DeployFolder)\$(DeployPrefix)\App_Data\Settings.$(Configuration).txt"
/>
|
MSBuild配置文件,可下载参考。
MSBuild学习资料:
http://technet.microsoft.com/zh-cn/library/0k6kkbsd
前言
阅读之前您也可以到Bootstrap3.0入门学习系列导航中进行查看http://www.cnblogs.com/aehyok/p/3404867.html
本文主要来学习一下JavaScript插件--轮播。废话不多说,直接进入学习。
轮播
下面先来展示的就是此插件和相关组件制作的轮播案例。
<body style="width:900px; margin-left:auto; margin-right:auto;"> <div id="carousel-example-generic" class="carousel slide" data-ride="carousel"> <!-- Indicators --> <ol class="carousel-indicators"> <li data-target="#carousel-example-generic" data-slide-to="0" class="active"></li> <li data-target="#carousel-example-generic" data-slide-to="1"></li> <li data-target="#carousel-example-generic" data-slide-to="2"></li> </ol> <!-- Wrapper for slides --> <div class="carousel-inner" style="text-align:center"> <div class="item active"> <img alt="First slide" src="http://placehold.it/900x500/78EB09/FFEB09/&text=First slide" ></img> </div> <div class="item"> <img alt="Second slide" src="http://placehold.it/900x500/78EB09/FFEB09/&text=Second slide" ></img> </div> <div class="item"> <img alt="Third slide" src="http://placehold.it/900x500/78EB09/FFEB09/&text=Third slide" ></img> </div> </div> <!-- Controls --> <a class="left carousel-control" href="#carousel-example-generic" data-slide="prev"> <span class="glyphicon glyphicon-chevron-left"></span> </a> <a class="right carousel-control" href="#carousel-example-generic" data-slide="next"> <span class="glyphicon glyphicon-chevron-right"></span> </a> </div> <script src="js/jquery-2.0.3.min.js"></script> <script src="js/bootstrap.min.js"></script> <script type="text/javascript"> //$('.carousel').carousel('next'); </script> </body>
Internet Explorer 8 & 9不支持过渡动画效果
Bootstrap基于CSS3实现动画效果,但是Internet Explorer 8 & 9不支持这些必要的CSS属性。因此,使用这两种浏览器时将会丢失过渡动画效果。而且,Bootstrap并不打算使用基于jQuery实现替代功能。
在任何.item
中均可以通过添加.carousel-caption
从而为每帧幻灯片添加说明文字。也可以添加任何HTML代码,这些HTML代码将会被自动排列和格式化。
<div class="item active"> <img alt="First slide" src="http://placehold.it/900x500/78EB09/FFEB09/&text=First slide" ></img> <div class="carousel-caption"> <h4>First Thumbnail label</h4> <p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.</p> </div> </div>
为三个项,分别加上,然后效果就有了额。
可访问性问题
轮播组件并不兼容可访问性标准。如果需要兼容,请考虑其他展示幻灯片的方案。
通过data属性可以很容易的控制轮播的定位。data-slide
可以接受控制播放位置的prev
或next
关键字。另外,还可以通过data-slide-to
传递以0
开始的幻灯片下标。
data-ride="carousel"
属性用来标记在页面加载之后即开始启动的轮播组件。
在最外层的轮播容器中添加即可
<div id="carousel-example-generic" class="carousel slide" data-ride="carousel">
手动启动轮播组件(上面我们通过使用data-ride属性进行自动开启轮播组件。):
$('.carousel').carousel()
可以将选项通过data属性或JavaScript传递。对于data属性,需要将选项名称放到data-
之后,例如data-interval=""
。
$("").carousel(options)
初始化轮播组件,接受一个可选的object
类型的options参数,并开始幻灯片循环。
$('.carousel').carousel({ interval: 2000 })
Bootstrap的轮播组件暴露了两个事件用于监听。
$('#carousel-example-generic').on('slide.bs.carousel', function () { alert(1); })
就这样为轮播组件绑定事件,然后在相应的运行时就会执行的。这个在之前的JavaScript插件中讲解的也比较多,形式都是通用的,所以只要会用就可以了。
图片
这是几个比较实用的图片轮播插件,效果很不错,合理的使用,总会给你的页面加分的。JavaScript插件几乎也都学习完了,虽然只是浅层的只是简单的会用,但是还是收获了不少。
本文已更新至Bootstrap3.0入门学习系列导航http://www.cnblogs.com/aehyok/p/3404867.html