3

我使用Asp.net 4 C#和MicrosoftAjax Minifier。發佈Web應用程序時在Asp.Net中縮小CSS和JS

請看我的代碼在這裏;使用<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> 
+0

只是一個猜測,從來沒有使用過MSAjax來縮小,但不應該包含'.min'目標文件名,以免覆蓋源文件?例如。 'JsTargetExtension =「.min.js」''和'CssTargetExtension =「.min.css」'? – Will

+0

VS不要讓我發佈擴展名爲.min.js的文件,因此我寫了這個問題。 – GibboK

+0

此刻我還使用了-min.css和-min.js版本,這可以讓文件自動發佈,但我認爲這不是一個乾淨的解決方案,而且我必須更改資源的路徑。 – GibboK

回答

3

(從問題複製)

爲了應對失去原有的JS/CSS文件,確保目標文件名包括.min,例如。 JsTargetExtension=".min.js"CssTargetExtension=".min.css"。有關使用MsAjax minifier文章:http://www.asp.net/ajaxlibrary/ajaxminquickstart.ashx

然後,爲了能夠發佈縮小的文件,請參閱這篇文章:用快活的插件爲Visual Studio Using Microsoft AJAX Minifier with Visual Studio 2010 1-click publish

在我的工作中,我們解決了縮小文件的問題完全不同。它會在保存時自動將文件縮小爲.min版本。請參閱http://chirpy.codeplex.com/

+0

感謝wil爲你的答案,有趣的應用程序chirpy我會看看肯定。 – GibboK

相關問題