Conan
Conan
发布于 2024-01-09 / 68 阅读
0
0

前后端一体项目Nginx配置导致js样式404或不生效

该配置会导致以下文件类型404

location ~* \.(?:css(\.map)?|js(\.map)?|jpe?g|png|gif|ico|cur|heic|webp|tiff?|mp3|m4a|aac|ogg|midi?|wav|mp4|mov|webm|mpe?g|avi|ogv|flv|wmv)$ 
{
	expires 7d;
}

匹配特定文件类型的,将这些文件的缓存过期时间设置为 7 天;

在 Nginx 的配置文件中,location 块是按照先后顺序逐个检查的,当一个请求匹配到某一个 location 后,就不再继续检查后面的 location,而直接使用匹配到的那个 location。如果有其它的location块内部含有相同后缀的文件规则,且放在现在这个location之前,那么由于 Nginx 的location块处理顺序,之后的location块将不会被处理。

该头会导致某些样式不生效;

add_header Content-Security-Policy "default-src 'self' http: https: ws: wss: data: blob: 'unsafe-inline'; frame-ancestors 'self';" always;

Content-Security-Policy 头是一个安全标准,旨在防止跨站脚本攻击 (XSS) 和其他代码注入攻击。这个头可以限制浏览器只加载来自特定来源的资源。

  1. 你的样式文件来源不在 CSP 允许的源中。可能你的样式文件来自于 CDN 或者其它不在 default-src 列出的地方。检查你的样式文件的来源是否在 CSP 中被允许。

  2. 你加载的样式可能违反了 'unsafe-inline'。特别是如果你有内联样式,某些浏览器对 'unsafe-inline' 支持较弱,可能影响样式加载。


评论