Afaik, at current state there is no good way to use css from the class path and involve images init, also from the classpath.

The only way might be to use a page as a css, and embed in it dynamically absolute URLs of images

background-image: url(/context/app?service=asset&...)

I have never done this, and consider it complicated.

instead we drop the css and the images in the context of our application and use a context asset.

This also makes sense since css is all about seperating the design from the content. If the css and images are embedded in the classpath, where is the separation? They are bounded together, so you might as well use style="" attribute...

Cheers,
Ron


ציטוט Tim Downey:
Hi,

I'm writing a component that presents a modal dialog box using DHTML. The
component has its own CSS file that in turn refers to images. I'm trying to
figure out how to make Tapestry export the images as assets in a way that
when the CSS loads they will be found.

It seems to sort of work on its own, but I'm getting a strange exception in
the log when the browser attempts to load the image
from the CSS.

I have a component called ModalDialog.jwc. Inside of ModalDialog.html, there
is a referenced CSS.

Here's the problem part of the CSS:

background-image: url("maskBG.png") !important;

This CSS is encountered when rendering the HTML for the component in
ModalDialog.html. I also added the following asset to
ModalDialog.jwc, but I'm not sure how it could get used.

<asset name="maskBG"
path="classpath:/com/workscape/comp/web/component/dialog/modal/maskBG.png"/>

Checking my access log shows that the browser is indeed trying to grab the
maskBG.png file through an asset path. Here's the
entry in access log.

127.0.0.1 <http://127.0.0.1> - - [01/Nov/2005:08:15:09 -0500] "GET
/comp/assets/89cb0df0986f1c6066a2ab4bb3f08636/com/workscape/comp/web/component/dialog/modal/maskBG.png
HTTP/1.1" 200 -

So...it seems like it should work, or at least its close to working since
the access log shows it as a successful request (200), but the image is
never returned to the browser. Instead, I'm receiving this error message in
the log. Hopefully someone can help me understand what's happening.

Best regards,
-tim

[java] 08:15:09,484 WARN [RequestExceptionReporter] Failure to export
classpath resource
/com/workscape/comp/web/component/dialog/modal/maskBG.png.
[java] org.apache.hivemind.ApplicationRuntimeException: The MD5 digest
provided in the request does not match the actual value for classpath
resource '/com/workscape/comp/web/component/dialog/modal/maskBG.png'.
[java] at org.apache.tapestry.asset.AssetService.service(AssetService.java
:209)
[java] at
$IEngineService_107486026c1.service($IEngineService_107486026c1.java)
[java] at org.apache.tapestry.services.impl.EngineServiceOuterProxy.service(
EngineServiceOuterProxy.java:65)
[java] at org.apache.tapestry.engine.AbstractEngine.service(
AbstractEngine.java:248)
[java] at org.apache.tapestry.services.impl.InvokeEngineTerminator.service(
InvokeEngineTerminator.java:60)
[java] at
$WebRequestServicer_1074860268f.service($WebRequestServicer_1074860268f.java)
[java] at
$WebRequestServicer_1074860268b.service($WebRequestServicer_1074860268b.java)
[java] at
org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service(
WebRequestServicerPipelineBridge.java:56)
[java] at
$ServletRequestServicer_1074860266f.service($ServletRequestServicer_1074860266f.java)
[java] at org.apache.tapestry.request.DecodedRequestInjector.service(
DecodedRequestInjector.java:55)
[java] at
$ServletRequestServicerFilter_1074860266b.service($ServletRequestServicerFilter_1074860266b.java)
[java] at
$ServletRequestServicer_10748602671.service($ServletRequestServicer_10748602671.java)
[java] at org.apache.tapestry.multipart.MultipartDecoderFilter.service(
MultipartDecoderFilter.java:52)
[java] at
$ServletRequestServicerFilter_10748602669.service($ServletRequestServicerFilter_10748602669.java)
[java] at
$ServletRequestServicer_10748602671.service($ServletRequestServicer_10748602671.java)
[java] at org.apache.tapestry.services.impl.SetupRequestEncoding.service(
SetupRequestEncoding.java:53)
[java] at
$ServletRequestServicerFilter_1074860266d.service($ServletRequestServicerFilter_1074860266d.java)
[java] at
$ServletRequestServicer_10748602671.service($ServletRequestServicer_10748602671.java)
[java] at
$ServletRequestServicer_10748602663.service($ServletRequestServicer_10748602663.java)
[java] at org.apache.tapestry.ApplicationServlet.doService(
ApplicationServlet.java:141)
[java] at org.apache.tapestry.ApplicationServlet.doGet(
ApplicationServlet.java:97)
[java] at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
[java] at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
[java] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:252)
[java] at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:173)
[java] at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(
ReplyHeaderFilter.java:81)
[java] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:202)
[java] at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:173)
[java] at org.apache.catalina.core.StandardWrapperValve.invoke(
StandardWrapperValve.java:213)
[java] at org.apache.catalina.core.StandardContextValve.invoke(
StandardContextValve.java:178)
[java] at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(
CustomPrincipalValve.java:39)
[java] at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(
SecurityAssociationValve.java:153)
[java] at org.jboss.web.tomcat.security.JaccContextValve.invoke(
JaccContextValve.java:59)
[java] at org.apache.catalina.core.StandardHostValve.invoke(
StandardHostValve.java:126)
[java] at org.apache.catalina.valves.ErrorReportValve.invoke(
ErrorReportValve.java:105)
[java] at org.apache.catalina.valves.FastCommonAccessLogValve.invoke(
FastCommonAccessLogValve.java:481)
[java] at org.apache.catalina.core.StandardEngineValve.invoke(
StandardEngineValve.java:107)
[java] at org.apache.catalina.connector.CoyoteAdapter.service(
CoyoteAdapter.java:148)
[java] at org.apache.coyote.http11.Http11Processor.process(
Http11Processor.java:856)
[java] at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection
(Http11Protocol.java:744)
[java] at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(
PoolTcpEndpoint.java:527)
[java] at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(
MasterSlaveWorkerThread.java:112)
[java] at java.lang.Thread.run(Thread.java:595)
[java] 08:15:09,484 INFO [STDOUT]
[java] **********************************************************
[java] 08:15:09,484 INFO [STDOUT] Failure to export classpath resource
/com/workscape/comp/web/component/dialog/modal/maskBG.png.
[java] 08:15:09,484 INFO [STDOUT] Session id :
28BCDDA55A3F8E272A661892832A9743.node1
[java] 08:15:09,484 INFO [STDOUT]
[java] Exceptions:
[java] 08:15:09,500 INFO [STDOUT]
org.apache.hivemind.ApplicationRuntimeException: The MD5 digest provided in
the request does not match the actual value for classpath resource
'/com/workscape/comp/web/component/dialog/modal/maskBG.png'.
[java] 08:15:09,531 INFO [STDOUT]
org.apache.tapestry.asset.AssetService.service(AssetService.java:209)
[java] 08:15:09,531 INFO [STDOUT]
$IEngineService_107486026c1.service($IEngineService_107486026c1.java)
[java] 08:15:09,531 INFO [STDOUT]
org.apache.tapestry.services.impl.EngineServiceOuterProxy.service(
EngineServiceOuterProxy.java:65)
[java] 08:15:09,531 INFO [STDOUT]
org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:248)
[java] 08:15:09,531 INFO [STDOUT]
org.apache.tapestry.services.impl.InvokeEngineTerminator.service(
InvokeEngineTerminator.java:60)
[java] 08:15:09,531 INFO [STDOUT]
$WebRequestServicer_1074860268f.service($WebRequestServicer_1074860268f.java)
[java] 08:15:09,531 INFO [STDOUT]
$WebRequestServicer_1074860268b.service($WebRequestServicer_1074860268b.java)
[java] 08:15:09,531 INFO [STDOUT]
org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service(
WebRequestServicerPipelineBridge.java:56)
[java] 08:15:09,531 INFO [STDOUT]
$ServletRequestServicer_1074860266f.service($ServletRequestServicer_1074860266f.java)
[java] 08:15:09,531 INFO [STDOUT]
org.apache.tapestry.request.DecodedRequestInjector.service(
DecodedRequestInjector.java:55)
[java] 08:15:09,531 INFO [STDOUT]
$ServletRequestServicerFilter_1074860266b.service($ServletRequestServicerFilter_1074860266b.java)
[java] 08:15:09,531 INFO [STDOUT]
$ServletRequestServicer_10748602671.service($ServletRequestServicer_10748602671.java)
[java] 08:15:09,547 INFO [STDOUT]
org.apache.tapestry.multipart.MultipartDecoderFilter.service(
MultipartDecoderFilter.java:52)
[java] 08:15:09,547 INFO [STDOUT]
$ServletRequestServicerFilter_10748602669.service($ServletRequestServicerFilter_10748602669.java)
[java] 08:15:09,547 INFO [STDOUT]
$ServletRequestServicer_10748602671.service($ServletRequestServicer_10748602671.java)
[java] 08:15:09,547 INFO [STDOUT]
org.apache.tapestry.services.impl.SetupRequestEncoding.service(
SetupRequestEncoding.java:53)
[java] 08:15:09,547 INFO [STDOUT]
$ServletRequestServicerFilter_1074860266d.service($ServletRequestServicerFilter_1074860266d.java)
[java] 08:15:09,547 INFO [STDOUT]
$ServletRequestServicer_10748602671.service($ServletRequestServicer_10748602671.java)
[java] 08:15:09,547 INFO [STDOUT]
$ServletRequestServicer_10748602663.service($ServletRequestServicer_10748602663.java)
[java] 08:15:09,547 INFO [STDOUT]
org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java
:141)
[java] 08:15:09,547 INFO [STDOUT]
org.apache.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:97)
[java] 08:15:09,547 INFO [STDOUT] javax.servlet.http.HttpServlet.service(
HttpServlet.java:697)
[java] 08:15:09,547 INFO [STDOUT] javax.servlet.http.HttpServlet.service(
HttpServlet.java:810)
[java] 08:15:09,547 INFO [STDOUT]
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:252)
[java] 08:15:09,547 INFO [STDOUT]
org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:173)
[java] 08:15:09,547 INFO [STDOUT]
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(
ReplyHeaderFilter.java:81)
[java] 08:15:09,547 INFO [STDOUT]
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:202)
[java] 08:15:09,547 INFO [STDOUT]
org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:173)
[java] 08:15:09,547 INFO [STDOUT]
org.apache.catalina.core.StandardWrapperValve.invoke(
StandardWrapperValve.java:213)
[java] 08:15:09,547 INFO [STDOUT]
org.apache.catalina.core.StandardContextValve.invoke(
StandardContextValve.java:178)
[java] 08:15:09,562 INFO [STDOUT]
org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(
CustomPrincipalValve.java:39)
[java] 08:15:09,562 INFO [STDOUT]
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(
SecurityAssociationValve.java:153)
[java] 08:15:09,562 INFO [STDOUT]
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java
:59)
[java] 08:15:09,562 INFO [STDOUT]
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:126)
[java] 08:15:09,562 INFO [STDOUT]
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:105)
[java] 08:15:09,562 INFO [STDOUT]
org.apache.catalina.valves.FastCommonAccessLogValve.invoke(
FastCommonAccessLogValve.java:481)
[java] 08:15:09,562 INFO [STDOUT]
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:107)
[java] 08:15:09,562 INFO [STDOUT]
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
[java] 08:15:09,562 INFO [STDOUT]
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
[java] 08:15:09,562 INFO [STDOUT]
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection
(Http11Protocol.java:744)
[java] 08:15:09,562 INFO [STDOUT]
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(
PoolTcpEndpoint.java:527)
[java] 08:15:09,562 INFO [STDOUT]
org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(
MasterSlaveWorkerThread.java:112)
[java] 08:15:09,562 INFO [STDOUT] java.lang.Thread.run(Thread.java:595)
[java] 08:15:09,562 INFO [STDOUT]
[java] **********************************************************



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to