2013-07-12 39 views
6

Tôi có thư mục css ở gốc của Ứng dụng web Java của tôi. Tuyên bố nhập của tôi trông giống như sau:đường dẫn tương đối vào tệp CSS

<link rel="stylesheet" type="text/css" href="/css/styles.css"/> 

Kiểu này không được áp dụng, vì vậy tôi cho rằng đường dẫn đến thư mục css không được chỉ định chính xác. Làm thế nào để xác định rằng thư mục css nằm ở thư mục gốc của thư mục Project?

thư mục dự án của tôi chứa:

build 
css 
dist 
nbproject 
src 
web 
build.xml 

Các trang html mà tôi đang xem là index.html, và URL hiển thị là localhost: 8080/ServletApp/

+0

Và những gì đang url được bạn xem? – FakeRainBrigand

+0

Sử dụng Google Chrome, nhấp vào F12 và quan sát bảng điều khiển Mạng của bạn để xem liệu tệp có đang được tải hay không. – user1477388

+0

Gốc là '/' giống như bạn đã gõ. Bạn đã thử đưa css trực tiếp vào thư mục của ứng dụng của bạn và xem nếu nó được áp dụng sau đó? Tất nhiên bạn cần chỉnh sửa 'href' cho phù hợp. – waka

Trả lời

0

nếu tập tin có chứa thẻ liên kết là trong thư mục gốc của dự án, sau đó con đường đúng sẽ là "css/styles.css"

+2

Không, điều đó liên quan đến trang hiện tại. Điều gì sẽ xảy ra nếu họ ở trang web.com/mypage/page/? –

+0

có liên quan đến trang hiện tại. Đó là lý do tại sao tôi nói "nếu tệp chứa thẻ liên kết đó nằm trong thư mục gốc của dự án". Chú ý dude: | –

+0

Đó là vấn đề lớn - điều gì sẽ xảy ra nếu họ di chuyển trang? Ý tưởng của các liên kết '/' là nếu chúng di chuyển trang, nó sẽ vẫn hoạt động. –

28

nền

Absolute: Trình duyệt sẽ luôn giải thích / làm thư mục gốc của tên máy chủ. Ví dụ: nếu trang web của tôi là http://google.com/ và tôi đã chỉ định /css/images.css thì nó sẽ tìm kiếm trang đó tại http://google.com/css/images.css. Nếu gốc dự án của bạn thực sự ở số /myproject/, nó sẽ không tìm thấy tệp css. Do đó, bạn cần phải xác định nơi gốc thư mục dự án của bạn có liên quan đến tên máy chủ và chỉ định điều đó trong ký hiệu href của bạn.

tương đối: Nếu bạn muốn tham khảo một cái gì đó mà bạn biết đang cùng một đường dẫn url - có nghĩa là, nếu nó đang ở trong cùng một thư mục, ví dụ http://mysite.com/myUrlPath/index.htmlhttp://mysite.com/myUrlPath/css/style.css, và bạn biết rằng nó sẽ luôn luôn theo cách này là, bạn có thể đi ngược lại quy ước và chỉ định đường dẫn tương đối bằng cách không đặt / hàng đầu ở trước đường dẫn của bạn, ví dụ: css/style.css.

Ký hiệu hệ thống tệp: Ngoài ra, bạn có thể sử dụng ký hiệu hệ thống tệp chuẩn như ... Nếu bạn làm http://google.com/images/../images/../images/myImage.png, nó sẽ giống như http://google.com/images/myImage.png. Nếu bạn muốn tham khảo thứ gì đó là một thư mục từ tệp của bạn, hãy sử dụng ../myFile.css.


trường hợp cụ thể của bạn

Trong trường hợp của bạn, bạn có hai lựa chọn:

  • <link rel="stylesheet" type="text/css" href="/ServletApp/css/styles.css"/>
  • <link rel="stylesheet" type="text/css" href="css/styles.css"/>

Đầu tiên sẽ cụ thể hơn và tương thích nếu bạn di chuyển mọi thứ xung quanh, tuy nhiên nếu bạn đang có kế hoạch để giữ t anh ta tập tin trong cùng một vị trí, và bạn đang có kế hoạch để loại bỏ/ServletApp/một phần của URL, sau đó giải pháp thứ hai là tốt hơn.

+2

Theo lời Borat, Rất Đẹp! – Michael

+0

hmm..Nó vẫn không áp dụng kiểu. Tôi có thể gặp sự cố với tệp CSS. Cảm ơn. – user1154644

+0

@ user1154644 Sử dụng gỡ lỗi trong trình duyệt của bạn để kiểm tra tệp và xem tệp có đang được tải hay không. –

2

Bạn phải di chuyển thư mục css vào thư mục web của mình. Dường như thư mục web của bạn trên ổ đĩa cứng bằng thư mục /ServletApp được xem từ www.Không thể truy cập nội dung khác ngoài thư mục web của bạn từ trình duyệt.

Url của liên kết CSS là sau đó

<link rel="stylesheet" type="text/css" href="/ServletApp/css/styles.css"/> 
+0

bài đăng hay. bộ não chỉ đi -click-. cảm ơn... –

Các vấn đề liên quan