Điểm:0

Làm cách nào để sử dụng chính xác nội dung tệp với đường dẫn ảo bằng Nginx?

lá cờ in

Tôi có ứng dụng AngularJs (v1) được tạo dưới dạng hình ảnh Docker (với Nginx là máy chủ web). Nó có cấu trúc bên dưới

-ứng dụng
  --xây dựng
    --js
      |-app.min.js
      |-đăng nhập.min.js
    --phong cách
      |-app.min.css
      |-đăng nhập.min.css
  --tài sản
    --hình ảnh
    --phông chữ
  --index.html
  --login.html

tôi có những điều sau đây cấu hình nginx

người phục vụ {
  nghe 80;
  error_log /var/log/nginx/error.log;
  access_log /var/log/nginx/access.log;

  gốc /usr/share/nginx/html;

  địa điểm/nội dung {
    viết lại ^/content$ /index.html;
  }

  vị trí/nội dung/đăng nhập {
    viết lại ^/content/login$ /login.html;
  }

}

Đây là index.html tập tin

<html lang="en" data-ng-app="app">
  <header>
    <script src="build/js/app.min.js"></script>
    <link rel="stylesheet" href="build/styles/app.min.css">
  </header>
  <body>
    ...
  </body>
</html>

đăng nhập.html tập tin


<html lang="en" data-ng-app="app-login">
  <header>
    <script src="build/js/login.min.js"></script>
    <link rel="stylesheet" href="build/styles/login.min.css">
  </header>
  <body>
    ...
  </body>
</html>

Những gì tôi muốn đạt được

Khi người dùng đi đến http://localhost:3000/nội dung ứng dụng sẽ phục vụ index.htmlđăng nhập.html nếu người dùng truy cập http://localhost:3000/content/đăng nhập.

Cả hai /Nội dung/nội dung/đăng nhập là các tuyến không tồn tại trên ứng dụng Angularjs.

Tôi đã nhận được gì

Khi truy cập http://localhost:3000/content/đăng nhập ứng dụng đã tải 2 tệp sau

  • http://localhost:3000/content/build/js/login.min.js
  • http://localhost:3000/content/build/styles/login.min.css

Cả hai đều có mã lỗi 404.

tôi đã mong đợi điều gì

Tôi muốn Nginx phục vụ trực tiếp tệp http://localhost:3000/content/build/js/login.min.js với nội dung của tập tin từ http://localhost:3000/build/js/login.min.js. Nó cũng áp dụng cho các tệp CSS.

jb_alvarado avatar
lá cờ tc
Khi bạn chạy `http://localhost:3000/`, bạn sẽ không nhấn nginx, vì nginx đang lắng nghe trên cổng 80.
Tan Viet avatar
lá cờ in
@jb_alvarado À, tôi đang sử dụng docker-compose để nghe cổng 80 từ nginx rồi xuất nó sang cổng 3000 trên máy chủ của tôi.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.