- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的目录:
/
|- static/
|- index.html // my pc page
|- CKFM/
|-index.html // my mobile web app
更新:我的 nginx.conf(完整版):
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
ignore_invalid_headers off;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location ^~ /cooka {
proxy_pass http://localhost:8090 ;
}
location ^~ /cooka-search {
proxy_pass http://localhost:8089 ;
}
location ^~ /m/cooka {
proxy_pass http://localhost:8090 ;
}
location ^~ /CKFM {
try_files $uri $uri/ /CKFM/index.html;
}
location / {
root static;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
我在 /CKFM/
文件夹中有一个基于 react-router 构建的网络应用
当我转到 localhost/CKFM/
时,它起作用了,因为有一个 index.html
但是当我转到 localhost/CKFM/signin/
它显示 404
未找到
我想实现的是:
当转到localhost/CKFM/sigin
它也将服务于 /CKFM/index.html
更多信息:
我的应用是一个 react-router 应用
我正在按照文档配置 nginx。
我在一个全新下载的 nginx 中测试了 try_files
配置,它有效。
有效的配置文件:
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location /CKFM {
try_files $uri /CKFM/index.html;
}
location / {
root html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
所以我猜我的一些配置破坏了 try_files
指令...
最佳答案
改变配置
location ^~ /CKFM {
root <your root folder>;
try_files $uri $uri/ /CKFM/index.html;
}
你还错过了这一行末尾的 ;
:)
关于nginx try_files 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34487232/
我试图添加 try_files 来检查 php 文件是否存在,但它给了我错误。 "try_files" directive is duplicate in /etc/nginx/snippets/fa
我的目录: / |- static/ |- index.html // my pc page |- CKFM/ |-index.html // my mobile web app 更
我有一个图像位置设置,例如: location ~* ^/images/.+\.(jpg|jpeg|gif|png)$ { try_files /disk/$uri /images?uri=$u
我正在设置 nginx 以使用 React SPA。当我不包含可变路径 (/rsvp/) 时,页面加载正常。但是当我尝试 (/rsvp/S0mEtH1NG) 时,它会下载索引、 list 、css 文
我有一个网站需要从 Apache 服务器迁移到 Nginx 服务器。 本站.htaccess文件如下 RewriteEngine on RewriteRule ^([^/\.]+)/?$ $1.php
我正在使用 nginx 配置一个非常标准的网络服务器。服务器按预期工作,但是,我想了解一个小的配置细节。 我目前的配置是: index index.html index.htm index.php;
我正在尝试使用 php 代码向站点的/blog 子目录提供请求,该子目录位于文档根目录之外的文件夹中。这是我的主机配置: server { server_name local.test.ru
我试图了解 Nginx 的 try_files 是如何实现的指导性作品。 Nginx 正在我的服务器上运行,并提供位于 /usr/share/nginx/html/index.html 的默认页面。
我有一个简单的Angular单页应用程序,试图与Nginx docker镜像1.17.1版一起使用。 在Dockerfile中,我构建并打包Angular,然后将生成的文件复制到nginx图像。 FR
我想根据请求中的自定义 header 有条件地从缓存中获取文件。 如果请求中存在 X-Proxy header ,则仅当文件存在于缓存中时才返回该文件。否则,如有必要,请从互联网上获取它。 这是我的
我正在尝试将 Nginx 设置为反向代理,但也可以自己处理单个静态页面(问候语): root /usr/share/project/; location = / { try_files ind
我有这个文件夹结构: /document/root/ |-- main `-- wishlist 我想让我的 nginx 像这样工作:如果我将浏览器指向 example.com/wishlist,它将
我以这种方式使用位置部分使用 nginx 为 Angular 2 应用程序提供服务: location / { try_files $uri $uri/ /index.html =404; } t
当我将我的 php 文件放在/home/tim_test 中时,它工作正常 当我将文件放入/home/tim_test/hmm 时,它不起作用。为什么不呢? server { listen 8
我看起来既高又低,发现没有这样的实现,我想知道我正在尝试的是否可能。我有 3 个提供静态内容的相对路径: Path1: /usr/local/www/style1/static/... Path2:
我有一个奇怪的问题,它只影响我正在处理的一个本地应用程序 - 使用这种方法的其他应用程序似乎工作正常(Ghost)。这是来自我的 Nginx 服务器配置: location @node_proxy {
我正在使用 nginx 的 $geoip_country_code 模块根据 IP 重定向用户。我的配置代码如下- server { listen 80; gzip on;
我有一个简单的location在我的 nginx 配置中阻止与我的网站的静态文件匹配。我想要做的是使用 try_files 检查文件是否存在,如果没有,则重定向到一个 URL(在这种情况下,在 @cd
我需要一些帮助来配置 nginx 以从不同的文件夹加载文件。这是我的配置: index index.php; server { server_name domain.com; root
鉴于此文件夹结构: root folder + default + settings1.txt + settings2.txt ...
我是一名优秀的程序员,十分优秀!