====== Mapping URL to Local File System ====== ===== For File System ===== It is possible for us to map a URL to the sever local file system. Here is how we do it: - Write a WebConfiguration class with @Configuration annotation that implements WebMvcConfigurer. - @Override that method ''public void addResourceHandlers(ResourceHandlerRegistry registry) {...}'' - The method looks like: @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/demo/**").addResourceLocations("file:///d:/demo/"); } Note that it would map any files, and sub-directories to the URL "http://PATH_TO_YOUR_SERVER:PORT/demo/..." to the directory ''d:\demo'' in your windows system. we can do ''file:/opt/YOUR_DIRECTORY'' for your Unix/Linux system. ===== For Relative Path Inside the War/Jar File ===== Assume we put a file called ''1.jpg'' under the path ''src/main/resources/static'', we can access it with URL ''http://PATH_TO_YOUR_SERVER:PORT/1.jpg''. This directory is the best for putting css, javascript. However, if we want to mapping a directory under ''src/main/resources'', there is no way to access it unless we do a static path mapping ourselves. - Create a directory under "src/main/resources". ''demo'' for example. - Do something like the previous section, but do: @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/demo/**").addResourceLocations("classpath:/demo/"); } ''classpath:/'' is the root directory of ''src/main/resources/''. Note that it will work for all sub-directories...