Serving default documents
The frontend of modern web applications consists mostly of static files. Therefore, pointing the server to the client directory and instructing it to serve its entire content as static files is a common practice. In such situations, you will also want to send the user the main application file, such as index.html, when they navigate to the static folder. These files are called default documents.
Defining default documents for a static folder is done via the UseDefaultFiles method. Within the Startup.cs file, locate the Configure method and add the following marked line:
app.UseDefaultFiles();
app.UseStaticFiles();
The UseDefaultFiles method instructs ASP.NET Core to look for the following files once a URL that directs to a static folder has been detected:
- default.htm
- default.html
- index.htm
- index.html
These files will be looked for in that order. Once a filename matching one of these names is found, it will be served to the end user.
To change the filenames that UseDefaultFiles searches for, create and set a DefaultFilesOptions object and pass it to the method. For example, the following code changes the default filename collection to look for the main.htm and main.html files, instead of the predefined filenames:
DefaultFilesOptions options = new DefaultFilesOptions();
options.DefaultFileNames.Clear();
options.DefaultFileNames.Add("main.htm");
options.DefaultFileNames.Add("main.html");
app.UseDefaultFiles(options);