javascript - 如何在 nginx 中从多个 JS、CSS 目录提供 HTML
问题描述
我的目录结构是 -
project
|----theme
| |----css
| |----images
| |----js
|
|----pages
| |----css
| |----images
| |----js
| |----index.html
|
|----libraries
| |----lib1
| | |----lib1.js
| |
| |----lib2
| | |----lib2.js
我的 nginx/sites-available 配置是-
server {
listen 80 default_server;
listen [::]:80 default_server;
root /home/ubuntu/project/pages;
index index.html;
server_name mydomain.com www.mydomain.com;
location ~* \.(js|jpg|png|css)$ {
root /home/ubuntu/project; -----(A)
}
}
我从 pages/index.html 引用了“主题”和“库”中的文件。但是控制台在尝试加载这些文件时会输出 404 错误。如何正确提供这些文件?
如果我在 (A) 中为 root 编辑并附加“/pages”,则会提供“pages”JS,但随后又找不到“theme”和“libraries”中的文件(在控制台中显示 404 错误)。
解决方案
你需要用来try_files
尝试不同的位置
location ~* \.(js|jpg|png|css)$ {
root /home/ubuntu/project;
try_files $uri $uri/ /pages$uri /theme$uri =404;
}
推荐阅读
- android - 如何将密码保存到手机上
- dataweave - 如何使用 Dataweave 2.0 从有效负载中获取数组中的值对象
- powershell - Mesmo importando Módulo no PowerShell - Comando não é reconhecido
- javascript - Express 验证器 isIn 功能无法正常工作
- python - 为自然语言处理建立数据结构朴素贝叶斯分类器
- c# - c#中空参数的自定义异常
- javascript - 有没有办法从 JavaScript 中的类方法中解构返回值
- html5-audio - 在录制 HTML 音频时避免爆裂声和咔嗒声
- flutter - StreamController Bad State:Stream 已经被监听
- iframe - 使用带有protect_from_forgery前置的iframe:true