title: What is the difference between UseStaticFiles, UseSpaStaticFiles, and UseSpa in ASP.NET Core 2.1?
body: <p>ASP.NET Core 2.1.1 offers several seemingly related extension methods for appBuilder:</p>
  <ul>
  <li><code>UseStaticFiles</code> from <code>Microsoft.AspNetCore.StaticFiles</code></li>
  <li><code>UseSpaStaticFiles</code> from <code>Microsoft.AspNetCore.SpaServices.Extensions</code></li>
  <li><code>UseSpa</code> from <code>Microsoft.AspNetCore.SpaServices.Extensions</code></li>
  </ul>
  <p><strong>Please help me make sense of their purpose and relation to each other?</strong></p>
  <p>Also, is there any difference from the server execution standpoint if I run these methods in a different order</p>
  <p>e.g.</p>
  <pre><code>app.UseStaticFiles() -&gt; app.UseSpaStaticFiles() -&gt; app.UseSpa()
  </code></pre>
  <p>vs</p>
  <pre><code>app.UseSpa() -&gt; app.UseSpaStaticFiles() -&gt; app.UseStaticFiles()
  </code></pre>