Điểm:2

Sự cố khi mở mã HTML qua trình duyệt bằng Visual Studio Code

lá cờ br

Tôi đang sử dụng Ubuntu với WSL.

Bên trong Ubuntu, tôi có:

  • Tạo một thư mục cho mã của tôi và đĩa CDmuốn nó
  • Thực thi mã số . để bắt đầu làm việc với một dự án HTML trong VSCode

Tuy nhiên, khi tôi đặt mã bên trong mẫu HTML5 và thử chạy nó, nó không mở trong trình duyệt của tôi. Tôi nhận được thông báo lỗi sau:

Không tìm thấy tệp. Nó có thể đã được di chuyển, chỉnh sửa hoặc xóa.

Khi tôi sao chép đường dẫn từ tệp HTML trong VSCode và cố gắng dán nó vào trình duyệt thì nó vẫn không hoạt động.

Tuy nhiên, khi tôi nhấp chuột phải vào tệp HTML và mở nó qua Tiết lộ trong Explorer sau đó sao chép và dán URL từ đó vào trình duyệt, nó sẽ hoạt động.

Nó có tiêu đề WSL trong đường dẫn.

Tại sao tôi không thể mở nó trong VSC? Nó không tìm thấy nó trong trình duyệt theo cách đó. Nhưng khi nó như thế này:

tệp://wsl%24/Ubuntu/home/pypy/books/paper.html

... sau đó nó tìm thấy nó.

Tôi bối rối không biết tại sao điều này lại xảy ra và hậu quả lâu dài của việc này.Điều này có ảnh hưởng đến trang web của tôi trong tương lai không? Nó sẽ gây ra vấn đề lưu trữ? Làm thế nào tôi có thể sửa lỗi này?

Điểm:2
lá cờ vn

Tôi có thể tái tạo điều này và thành thật mà nói tôi hơi (hơi) ngạc nhiên về điều đó. Tôi sẽ có cùng một giả định như bạn rằng điều này sẽ "chỉ hoạt động". Tôi cho rằng vì chúng tôi đang sử dụng tiện ích mở rộng "Từ xa - WSL" trong trường hợp này nên tiện ích mở rộng sẽ xử lý việc dịch đường dẫn. Thật không may, điều này dường như không phải là trường hợp.

Nó có thể không phải là một tùy chọn cho các tiện ích mở rộng VSCode để sửa đổi đường dẫn của tệp khi khác (không phải phần mở rộng) đang hoạt động trên tệp.

Vì vậy, điều đang thực sự xảy ra là đường dẫn được chuyển đến trình duyệt Windows của bạn là tệp://home/pypy/books/paper.htmlvà trình duyệt Windows sẽ không tìm thấy tệp có đường dẫn đó. Như bạn đã tìm thấy, đối với trình duyệt Windows, giao diện đó sẽ giống như:

tập tin://wsl$/ubuntu/home/pypy/books/paper.html
# hoặc
tệp://wsl.local/ubuntu/home/pypy/books/paper.html
# Phần "ubuntu" có thể khác nhau tùy thuộc vào tên phân phối chính xác của bạn

Lưu ý bên lề: Các %24 mà bạn đang thấy chỉ là dạng mã hóa URL của $.

Có một số giải pháp:

  • Đầu tiên, một giải pháp đơn giản là sử dụng Remote-WSL: Mở lại trong Thư mục trong Windows hoạt động:

    • Trong VSCode, nhấn Điều khiển+Sự thay đổi+P để mở Bảng lệnh
    • Bắt đầu gõ "mở lại" và chọn tùy chọn Remote-WSL: Mở lại trong Thư mục trong Windows
    • Chạy lại dự án HTML của bạn thông qua F5

    Trình duyệt sẽ mở đúng cách bằng cách sử dụng các cửa sổ (chứ không phải WSL/Linux).

  • Tùy chọn thứ hai và tùy chọn bạn thường sử dụng khi bạn tiến bộ hơn trong quá trình phát triển HTML của mình, đó là chạy một máy chủ web cục bộ. Điều này sẽ cho phép bạn phát triển trong một môi trường "thế giới thực" hơn, vì bạn sẽ cần phải làm gì để nhiều tính năng hoạt động (ví dụ: Node và các khung web khác nhau của nó như Svelte, React, v.v., v.v.).

Điều này có ảnh hưởng đến trang web của tôi trong tương lai không? Nó sẽ gây ra vấn đề lưu trữ?

Vâng, thành thật mà nói, nó có thể, nhưng không phải nếu bạn làm mọi thứ "đúng cách". Đó là để đảm bảo rằng các đường dẫn trong HTML của bạn là liên quan đến vào thư mục của tập tin. Ví dụ, bạn có thể tham chiếu đến tệp hình ảnh trong thư mục con của tệp HTML bằng cách chỉ định:

<img src="file://wsl.local/ubuntu/home/pypy/books/images/logo.png" />

Và điều đó sẽ hoạt động khi xem tệp cục bộ trên máy của bạn. Tất nhiên, nó sẽ bị lỗi khi bạn lưu trữ nó trên một máy chủ web thực.

Thay vào đó, hãy sử dụng một đường dẫn tương đối:

<img src="images/logo.png" />

... sẽ hoạt động trong cả VSCode khi xem cục bộ (ít nhất là sau khi chọn Mở lại trong thư mục trong Windows) và khi lưu trữ trên web.

lá cờ br
Cảm ơn bạn vì sự giúp đỡ!
Điểm:2
lá cờ cn

Thông thường, HTML, JS, CSS, v.v. được cung cấp cho trình duyệt thông qua máy chủ web. Vì vậy, nên sử dụng một trong khi phát triển trang hoặc ứng dụng của bạn.

May mắn thay, có một tiện ích mở rộng cho VSC được gọi là Máy chủ trực tiếp điều đó làm cho mọi thứ dễ dàng hơn. Vì các tệp của bạn nằm trong WSL nên tiện ích mở rộng phải được cài đặt trong phiên bản WSL (từ xa). Đây là một đoạn video ngắn về cách nó có thể được cài đặt và cách sử dụng nó.

nhập mô tả hình ảnh ở đây

Trong khi Máy chủ Trực tiếp đang chạy, tab của trình duyệt có liên quan sẽ tự động được tải lại khi bạn lưu bất kỳ thay đổi nào trong dự án.

NotTheDr01ds avatar
lá cờ vn
Hoàn toàn đồng ý rằng "đúng cách" là sử dụng máy chủ, nhưng tôi nghĩ việc mở tệp HTML trong trình duyệt từ hệ thống tệp là "bước đầu tiên" tự nhiên (và có thể chấp nhận được) đối với những người mới bắt đầu.
pa4080 avatar
lá cờ cn
Cảm ơn vì lưu ý đó, @NotTheDr01ds. Tôi đã thay đổi văn bản hàng đầu của câu trả lời.
lá cờ br
Xin cảm ơn mọi người đã giúp đỡ; Tôi thực sự đánh giá cao nó. Xin lỗi vì tôi đã mất quá lâu để quay lại với các bạn. Cảm ơn bạn!

Đă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.