发布Web应用程序时,在Asp.Net中缩小CSS和JS

时间:2011-10-19 10:04:11

标签: asp.net visual-studio-2010 minify microsoft-ajax-minifier

我使用Asp.net 4 C#和MicrosoftAjax Minifier。

请在这里查看我的代码;使用<Target Name="AfterBuild">我可以缩小所有文件.js.css。问题是这个代码甚至缩小了我的项目解决方案中的原始文件,因此几乎不可能再次编辑主题。

我需要在将解决方案发布到本地文件夹后,将所有.js和。css缩小。

通过这种方式,我可以将原始文件保存在我的项目文件夹中,而不是将网站编译并缩小为另一个本地文件夹。

我使用<Target Name="Publish">更改脚本,我没有收到任何错误,但它不起作用。

你能告诉我我在这里缺少什么,是否有更好的方法来解决这个问题?感谢

<!-- Minify all JavaScript files that were embedded as resources -->
<Import Project="$(MSBuildExtensionsPath)\Microsoft\MicrosoftAjax\ajaxmin.tasks" />
<Target Name="Publish">
    <ItemGroup>
        <JS Include="**\*.js" Exclude="**\*.min.js;Scripts\*.js" />
    </ItemGroup>
    <ItemGroup>
        <CSS Include="**\*.css" Exclude="**\*.min.css" />
    </ItemGroup>
    <AjaxMin
        JsSourceFiles="@(JS)"  JsSourceExtensionPattern="\.js$" JsTargetExtension=".js"
        CssSourceFiles="@(CSS)" CssSourceExtensionPattern="\.css$" CssTargetExtension=".css"  />
</Target>

1 个答案:

答案 0 :(得分:3)

(从问题中复制)

要处理丢失原始js / css文件,请确保目标文件名包含.min,例如。 JsTargetExtension=".min.js"CssTargetExtension=".min.css"。请参阅有关使用MsAjax minifier的文章:http://www.asp.net/ajaxlibrary/ajaxminquickstart.ashx

然后,为了能够发布缩小的文件,请参阅此文章:Using Microsoft AJAX Minifier with Visual Studio 2010 1-click publish

在我的工作场所,我们通过在Visual Studio中使用Chirpy插件来完全解决缩小问题。它会在保存时自动将文件缩小为.min版本。见http://chirpy.codeplex.com/