2012-04-20 31 views
5

Tôi có tải về một hình ảnh nguồn Jquery Slider và muốn integarte với JSP tập tin của tôiKhông thể bao gồm các file css và JS trong Liferay Portlet JSP trang

Đây là thư mục Cơ cấu của tôi

enter image description here

này được con đường tôi đang bao gồm họ

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
<link type="text/css" href="/css/jquery.ui.theme.css" rel="stylesheet" /> 
<link type="text/css" href="/css/jquery.ui.core.css" rel="stylesheet" /> 
<link type="text/css" href="/css/jquery.ui.slider.css" rel="stylesheet" /> 
<link rel="stylesheet" href="/css/style.css" type="text/css" media="screen"/> 

tôi nhận được 404 này trong máy chủ giao diện điều khiển

20:50:04,625 WARN [404_jsp:109] /css/jquery.ui.theme.css 
20:50:04,640 WARN [404_jsp:109] /css/jquery.ui.core.css 
20:50:04,640 WARN [404_jsp:109] /css/jquery.ui.slider.css 
20:50:04,656 WARN [404_jsp:109] /css/style.css 
20:50:04,671 WARN [404_jsp:109] /js/cufon-yui.js 
20:50:04,671 WARN [404_jsp:109] /js/GreyscaleBasic.font.js 
20:50:04,687 WARN [404_jsp:109] /js/jquery.easing.1.3.js 
+0

crossreferencing cho những câu hỏi tương tự trong các diễn đàn Liferay https://www.liferay.com/community/forums/-/message_boards/view_message/13575666 –

Trả lời

6

Một số vấn đề:

  • Nếu tôi thấy điều này đúng ở chỗ hình ảnh thu nhỏ mà bạn đăng, bạn có css và js thư mục của bạn trong WEB-INF: Không có gì đó là trong thư mục WEB-INF có thể được yêu cầu của bất kỳ trình duyệt, vì vậy bạn sẽ không bao giờ có thể nhận được nó.
  • Nếu bạn tạo docroot/css và docroot/js, bạn sẽ vẫn nhận được 404, vì bạn không thể tìm thấy tệp trên /css/style.css, nhưng trong /your-portlet/css/style.css - cách tổng quát để giải quyết nó trong JSP là

    < link rel="stylesheet" href="<%=request.getContextPath()%>/css/style.css"/> 
    
+0

Cảm ơn request.getContextPath(), nó là thông tin giá trị. – user1253847

+0

Cảm ơn nó là bài viết thực sự hữu ích – asifaftab87

+0

trong khi giải pháp của tôi hoạt động, giải pháp của Mark với liferay-portlet.xml thực sự sẽ được khuyến khích hơn. Của tôi là trực tiếp đến câu hỏi của bạn "Làm thế nào để tôi viết điều này một cách chính xác" trong khi Mark trả lời câu hỏi chưa được giải thích "Làm thế nào để giải quyết vấn đề cơ bản một cách thanh lịch" –

10

Đặt các liên kết trong liferay-portlet.xml và để Liferay tải css và javascript. Đó là cách tốt hơn (ví dụ: nếu người dùng muốn đặt hai portlet vào một trang).

liferay-portlet.xml:

<header-portlet-css>/css/main.css</header-portlet-css> 
<footer-portlet-javascript>/js/main.js</footer-portlet-javascript> 

Và Olaf là đúng, bạn phải di chuyển css- và js-thư mục (và hình ảnh quá) WEB-INF-docroot thư mục

+0

Đây là giải pháp tốt nhất (chỉ có một ngày), +1. –

+0

Ya nhưng tại sao tên tiêu đề-portlet và chân trang-portlet ?? (Đối với thông tin của bạn tôi có 6 Portlets hiển thị trên trang) điều này làm cho bất kỳ sự khác biệt ?? – user1253847

+0

1) có, ví dụ: /css/main.css trong liferay-portlet.xml – Mark