[Error] Lỗi gắn link trong file html



  • Chào mọi người,

    Mình mới tìm hiểu về nodejs,express và ejs, mình có thử làm 1 blog cá nhân để hiểu. Nhưng mình đụng 1 lỗi khá khó chịu mà mình không biết làm sao để sửa.
    Cụ thể là mình đang ở route http://localhost:3000/blog/1 . trong trang đó mình có 1 link(thẻ a) dẫn tới danh sách news như sau "<a href='./news'>News</a>". Lúc mình click vào, thay vì nó ra link "http://localhost:3000/news" thì nó lại ra là "http://localhost:3000/blog/news". Mình đã thử link tới những cách khách nhau như chèn luôn đường dẫn "http://localhost:3000/news" vào nhưng nó vẫn thay thế kiểu "http://localhost:3000/blog/http://localhost:3000/news". Ai đã gặp trường hợp này thì giúp mình hướng giải quyết.

    Thanks.



  • bác thử bỏ dấu "." đi thay bằng href="/news" thôi xem sao



  • Mình đã thử và nó ra như vậy nè bác "http://localhost:3000/blog//news".


  • Global Moderator

    @Hoang-Nguyen-Thai Client bạn đang sử dụng Angularjs đúng ko ? Nếu vậy thêm 1 thuộc tính target vào trong thẻ a xem có được ko nhé.

    Ví dụ trường hợp của bạn: <a href="/news" target="_self">News</a>



  • Không bạn ơi, mình mới tìm hiểu nên chỉ code chay thôi, dung ejs để render data ra html thôi.



  • do bạn đang chạy trên context là /blog. nên gốc url lun có /blog. Cái này ko liên quan gì nodejs gì hết nhé. Bạn phải deploy trên context là / (root)



  • @kevin3489
    Bạn có thể nói rõ hơn không ạ, mình mới tìm hiểu nên không hiểu lắm, và cách giải quyết hay ví dụ như thế nào để sửa lỗi này ạ. Thanks



  • @kevin3489

    Thanks kevin nhé, sau khi search 1 mớ theo keyword context của bạn thì mình có cách giải quyết là thêm dòng này trên cùng của file html:

    <base href="http://localhost:3000" />

    Không biết có cách nào để bỏ cái link trong href theo kiểu tùy biến tùy theo từng domain không.



  • @Hoang-Nguyen-Thai thật sự ko hiểu tại sao bạn lại có thể gặp lỗi này, có thể ko phải đến từ nodejs mà là ở html không đúng chuẩn. Hay bạn upload toàn bộ code lên github để mng sửa hộ nhé


  • Global Moderator

    @Super-Dick Hoàn toàn đồng ý với bạn. Đây là quyền điều hướng ở phía client, không liên quan phía server. Có thể framework phía client bạn ấy sử dụng đang kiểm soát việc điều hướng này. :)

    @Hoang-Nguyen-Thai Bạn hãy sử dụng jsfiddle.net, đưa code lên đó mọi người có thể giúp đỡ được chi tiết hơn ;)



  • @Hoang-Nguyen-Thai : nói chung, bạn cứ làm sao mà localhost:3000/ vô thẳng trang homepage của bạn là được.



  • @kevin3489
    Mình chay domain localhost:3000/ vẫn vào trang chủ. chạy localhost:3000/news vẫn vào trang tin tức và vẫn link được tất cả các link, chỉ khi thêm localhost:3000/news/1 chẳng hạn, thì nó link ngược lại không được. mình chỉ dùng ejs cho template, và template mình lấy trên themeforest về.

    @Vũ
    Mình có kết nối với mysql để lấy dữ liệu về, với template khá phức tạp mình nghĩ sử dụng jsfiddle.net không được .



  • This post is deleted!

Log in to reply