2012-04-20 7 views
5

Ho scaricare un Jquery Immagine fonte Slider e voglio integarte con il mio JSP FileImpossibile includere i file CSS e JS in Liferay portlet JSP pagina

Questa è la mia cartella Struture

enter image description here

Questo è il mio modo le includo

<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"/> 

ottengo questo 404 in console del server

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 alle stesse domande nei forum di Liferay https://www.liferay.com/community/forums/-/message_boards/view_message/13575666 –

risposta

6

diversi problemi:

  • Se vedo questo che miniatura che hai postato correttamente, hai il tuo CSS e JS cartella WEB-INF: Nulla che è in WEB-INF può essere richiesto da qualsiasi browser, quindi non sarai mai in grado di ottenerlo.
  • Se crei docroot/css e docroot/js, otterrai comunque 404, perché non puoi trovare i file su /css/style.css, ma in /your-portlet/css/style.css - il modo generico di affrontare in JSP è

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

Grazie per request.getContextPath(), si trattava di informazioni preziose. – user1253847

+0

Grazie al fatto che è davvero utile dopo il – asifaftab87

+0

mentre la mia soluzione funziona, la soluzione di Mark con liferay-portlet.xml sarebbe effettivamente più raccomandata. Il mio è direttamente alla tua domanda "Come faccio a scrivere correttamente" mentre Mark risponde alla domanda "Come risolvere il problema sottostante elegantemente" –

10

mettere il link in liferay-portlet.xml e lasciare Liferay carico del CSS e JavaScript. Questo è il modo migliore (ad es. Se l'utente vuole mettere due portlet su una pagina).

Liferay-portlet.xml:

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

E Olaf è giusto, è necessario spostare il CSS- e JS-cartelle (e le immagini troppo) da WEB-INF a docroot cartella

+0

Questa è la soluzione migliore (solo liferay), +1. –

+0

Ya ma perché i nomi header-portlet e footer-portlet ?? (Per vostra informazione ho 6 portlet visualizzati sulla pagina) questo fa alcuna differenza ?? – user1253847

+0

1) sì, ad es. /css/main.css in liferay-portlet.xml – Mark