0
我正在開發一個應用程序,我需要填充來自視圖的數據的pdf表單。在設置Spring Boot Security之前,一切正常。Spring Boot安全性:訪問新的PDF
我創建此PDF的文件夾設置爲公共。當我啓動應用程序時,我可以訪問在開始之前創建的所有PDF,但是當我創建一個新的應用程序時(我可以在文件系統上打開文件並檢查它是否正確創建),該文件的請求爲我提供了一個404找不到答案。
任何想法?
我正在開發一個應用程序,我需要填充來自視圖的數據的pdf表單。在設置Spring Boot Security之前,一切正常。Spring Boot安全性:訪問新的PDF
我創建此PDF的文件夾設置爲公共。當我啓動應用程序時,我可以訪問在開始之前創建的所有PDF,但是當我創建一個新的應用程序時(我可以在文件系統上打開文件並檢查它是否正確創建),該文件的請求爲我提供了一個404找不到答案。
任何想法?
您可以將您的pdf作爲static
資源。通過Spring引導註冊pdf目錄。
以下配置註冊了pdf
mime類型並配置了靜態資源。
@Configuration
public class WebConfigurer implements EmbeddedServletContainerCustomizer {
/**
* Set up Mime types.
*/
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
MimeMappings mappings = new MimeMappings(MimeMappings.DEFAULT);
// IE issue, see https://github.com/jhipster/generator-jhipster/pull/711
mappings.add("html", "text/html;charset=utf-8");
// CloudFoundry issue, see https://github.com/cloudfoundry/gorouter/issues/64
mappings.add("json", "text/html;charset=utf-8");
mappings.add("pdf", "application/pdf");
container.setMimeMappings(mappings);
}
....
}
// Register static resources
@Configuration
public class AppMvcConfiguration extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
// Including all static resources.
registry.addResourceHandler("/assets/**",
"/css/**",
"/img/**",
"/js/**",
"/pdf/**"
).addResourceLocations("/assets/",
"/css/",
"/img/",
"/js/",
"/pdf/**"
).resourceChain(true)
.addResolver(new PathResourceResolver());
super.addResourceHandlers(registry);
}}
安東感謝您的回答。問題是服務器,而不是設置。當我創建一個文件時,我試圖將url發送到視圖,並且當服務器啓動時該文件不存在,所以現在不用sendig url,而是使用HttpServlet響應發送完整文件。 – nick85
@ nick85我很高興你解決了你的問題。 –