Tôi nghĩ rằng vấn đề Sergionni là hai lần. Đầu tiên, đúng là cái gọi là thân nhân gốc, như BalusC đã nói, trên thực tế là tương đối miền, vì vậy, trong ví dụ này có liên quan đến http://example.com/
và không phải là http://example.com/context/
.
Vì vậy, bạn phải xác định
<link rel="stylesheet" type="text/css" href="${request.contextPath}/styles/decoration.css" />
BTW BalusC, xin chúc mừng, đây là lần đầu tiên tôi thấy điều này giải thích một cách chính xác! Tôi đã vật lộn khá nhiều để khám phá điều này.
Nhưng, nếu bạn muốn đơn giản hóa và đề nghị:
<link rel="stylesheet" type="text/css" href="styles/decoration.css" />
giả định rằng dir phong cách là một sibbling của trang hiện tại của bạn, sau đó bạn có thể có vấn đề thứ hai:
Bạn đang sau đó vào phương pháp URL tương đối và, tôi đã đến trang này bằng chuyển tiếp chứ không phải chuyển hướng, trình duyệt của bạn có thể bị lừa và không thể đi theo đường dẫn tương đối.
Để giải quyết vấn đề thứ hai này, bạn phải thêm này:
<head>
<base href="http://${request.serverName}:${request.serverPort}${request.contextPath}${request.servletPath}" />
Yếu tố cơ sở phải đặt trước bất kỳ liên kết.
Bằng lệnh cơ sở, bạn cho trình duyệt biết mình đang ở đâu.
Hy vọng điều đó sẽ hữu ích.
Và BTW một điều kỳ lạ trong thế giới này JSF wondeful:
để liên kết từ một trang để mẫu facelet của nó, là gốc liên kết tương đối IS, thời gian này, bao gồm bối cảnh như vậy:
<ui:composition template="/layouts/layout.xhtml">
liên kết này thực sự đến http://example.com/context/layouts/layout.xhtml
và không được để http://example.com/layouts/layout.xhtml
thích cho <a>
hoặc <link>
.
Jean-Marie Galliot
vâng, điều đó làm việc cho tôi - mà không có dấu gạch chéo đầu tiên – sergionni