Gitbookでサイトを構築していました。 Nginxの設定に問題がありました。基本的に、私は人々が訪問したときにbook.domain.com/book_nameという標準を作りたいと思っています。それはその特定の本にリダイレクトします。しかし、私はNginxには非常に新しく、私が書いたロケーションブロックは正しくありません。私は以下のディレクトリツリーを持っています。ロケーションブロックの選択でNginxエラーが発生する
book/
├── [root 4.0K] _book/
│ ├── [root 4.0K] gitbook/
│ ├── [root 5.9K] index.html
│ └── [root 970] search_index.json
├── [root 4.0K] book_name
│ ├── [root 4.0K] _book/
│ │ ├── [root 4.0K] gitbook/
│ │ ├── [root 5.9K] index.html
│ │ └── [root 568] search_index.json
│ ├── [root 16] README.md
│ └── [root 40] SUMMARY.md
├── [root 45] README.md
└── [root 40] SUMMARY.md
フォートワースブック下_bookに言及するサイトのメインディレクトリであり、私は他の本にリダイレクトするハイパーリンクを持つことになります。 book_nameの下の_bookがブックになります。
Nginxの設定は$ uriにbook_nameが含まれていると思っていたので、$ uriの下の_bookフォルダにアクセスしてindex.htmlファイルを取得することができます。これにより、500エラーが発生します。
server {
listen 80;
listen [::]:80;
server_name book.domain.com;
location /.well-known/acme-challenge {
root /var/www/domain.com/book/_book;
}
return 301 https://book.domain.com$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name book.domain.com;
ssl_certificate /etc/letsencrypt/live/book.domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/book.domain.com/privkey.pem;
root /var/www/domain.com/book;
index index.html;
location/{
try_files _book/ $uri/_book/;
}
}
しかし、別の場所ブロックを追加して別の方法で書き込むことも試みましたが、動作していません。これは私に404エラーを与えるでしょう。
location /book_name {
root /var/www/domain.com/book_name;
}
私は多分それを行う正しい方法は書いていると思っていましたか?ロケーションブロックを書くときは本当に混乱していました。それを行う正しい方法は何ですか?
新規編集
私は、ページを表示する方法を見つけましたが、不気味それは正しくJSとCSSでレンダリングされません。私は以下のように変更しました:
location/{
try_files $uri/_book/index.html /_book/index.html =404;
}
すべてのjsとcssファイルは、gitbookディレクトリの下にあります。
gitbook
├── [root 4.0K] fonts
│ └── [root 4.0K] fontawesome
│ ├── [root 122K] FontAwesome.otf
│ ├── [root 75K] fontawesome-webfont.eot
│ ├── [root 382K] fontawesome-webfont.svg
│ ├── [root 149K] fontawesome-webfont.ttf
│ ├── [root 88K] fontawesome-webfont.woff
│ └── [root 70K] fontawesome-webfont.woff2
├── [root 103K] gitbook.js
├── [root 4.0K] gitbook-plugin-fontsettings
│ ├── [root 6.3K] fontsettings.js
│ └── [root 8.4K] website.css
├── [root 4.0K] gitbook-plugin-highlight
│ ├── [root 2.8K] ebook.css
│ └── [root 31K] website.css
├── [root 4.0K] gitbook-plugin-lunr
│ ├── [root 15K] lunr.min.js
│ └── [root 1.6K] search-lunr.js
├── [root 4.0K] gitbook-plugin-search
│ ├── [root 15K] lunr.min.js
│ ├── [root 974] search.css
│ ├── [root 1.2K] search-engine.js
│ └── [root 6.2K] search.js
├── [root 4.0K] gitbook-plugin-sharing
│ └── [root 2.8K] buttons.js
├── [root 4.0K] images
│ ├── [root 4.7K] apple-touch-icon-precomposed-152.png
│ └── [root 4.2K] favicon.ico
├── [root 51K] style.css
└── [root 111K] theme.js
nessaryファイルへのリンクがあります。
try_filesの後にindex.htmlを置かないと、404エラーが返されます。しかし、通常、それはcssとjsでページを読み込みます。
jsファイルとcssファイルはどこにありますか? index.htmlファイルで参照されていますか? –
@RichardSmith cssファイルとjsファイル用に別々の場所ブロックを記述する必要はありますか?また、try_filesをロケーションブロックに再度書き込む必要がありますか? – domsupamoe