#RequestReduce
RequestReduce Makes your website faster - sometimes much faster - with almost no effort
##Getting started
- If you have [Nuget] (http://docs.nuget.org/docs/start-here/installing-nuget), simply enter
Install-Package RequestReduce
in the Package Manager Console and skip steps two and three, otherwise download the latest RequestReduce version [here] (http://www.requestreduce.com/)
- Extract the contents of the downloaded zip and copy RequestReduce.dll and optipng.exe to your website's bin directory
- If you want to sync multiple servers with SqlServer copy te DLLs in RequestReduce.SqlServer to your bin directory
- If you have Less, Sass or Coffee scripts, copy the DLLs from RequestReduce.SassLessCoffee to your bin to compile these to CSS and Javascript
- Add the RequestReduceModule to your web.config or using the IIS GUI.
Assuming you are using IIS 7, you would add it by ensuring that your web.config's system.webServer/modules element contains an add element as follows:
<system.web>
<httpModules>
<add name="RequestReduce" type="RequestReduce.Module.RequestReduceModule, RequestReduce" />
</httpModules>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules>
<add name="RequestReduce" type="RequestReduce.Module.RequestReduceModule, RequestReduce" />
</modules>
</system.webServer>
All background images you want to sprite [must have an explicit width in their css class] (http://github.com/mwrock/RequestReduce/wiki/Can-I-make-changes-to-my-CSS-classes-to-optimize-RequestReduce-spriting%3F). Otherwise RequestReduce cannot guarantee that the background positions it injects will not cause adjacent sprites to bleed into a background image's view port. Also, RequestReduce will ignore repeating images so make sure to mark the image no-repeat if it is not a repeating image.
##Troubleshooting
If RequestReduce does not appear to be doing anything, check out this [troubleshooting wiki] (https://github.com/mwrock/RequestReduce/wiki/RequestReduce-is-not-working.-I-don%27t-see-any-spriting-or-minification.-How-can-I-troubleshoot-this%3F) which provides several scenarios, options and debugging tips for figuring out why your content may not be being reduced. Also check the [list of wiki support pages] (https://github.com/mwrock/RequestReduce/wiki) which provides documentation addressing several topics to help you optimize RequestReduce and explain how RequestReduce works.
##Requirements
- The Core RequestReduce Dll is Compatible with Framework versions 3.5 and 4.0
- Sql Server integration and Less, Sass and Coffee compilation require .net 4.0
- Standard Features are Medium Trust compliant
- The identity that your asp.net worker process runs under must have write access to your web root directory for creating sprite and css files
##What's Next?
There are a ton of features I intend to add in order to make web performance optimizations just happen as part of installing Request Reduce. Here is what's at the top of the backlog:
- Support defered javascript loading
- Leverege CSS 3 to allow RequestReduce to sprite more images without any need for css modifications for supporting browsers
- Options to sprite foreground images
- Provide a command line utility for incorporating RequestReduce optimizations into a build task
##Resources
##Acknowledgements
RequestReduce uses the following excellent OSS and other Free projects:
###RequestReduce Core
###RequestReduce.SqlServer
###RequestReduce.SassLessCoffee
###RequestReduce Internal Code (testing and building)
##License
Licenced under [Apache 2.0] (http://www.apache.org/licenses/LICENSE-2.0)