Opened 13 years ago
Closed 12 years ago
#2657 closed defect (wontfix)
'intern-strings' does not correctly expand URLs inside of CSS
Reported by: | bradneuberg | Owned by: | James Burke |
---|---|---|---|
Priority: | high | Milestone: | 1.0 |
Component: | BuildSystem | Version: | 0.4.2 |
Keywords: | Cc: | ||
Blocked By: | Blocking: |
Description
The Dojo build system's 'intern-strings' directive is meant to inline widget HTML and CSS resources directly into the generated dojo.js file. If that CSS file contains a URL directive, such as the following from EditorToolbar?.css:
.dojoE2TBIcon {
background-image: url(buttons/aggregate.gif);
}
the 'intern-strings' widget doesn't correctly expand this into a relative address that is now relative to dojo.js, rather than the src/widgets/templates/ directory. This causes it to break and not display our images.
This impacts the Editor2 widget, which has a system to bundle up all the toolbar images into a single GIF file, which it then references using a CSS url() directive and CSS clipping directives to get each icon seperately. This can speed up page load time since all the GIF resources are essentially in one file. Without fixing this 'intern-strings' bug though, this doesn't work, which affects me with Moxie and Dojo Offline, contributing to slow page load.
I have attached a patch to fix this issue, applied to the file buildUtil.py.
Attachments (1)
Change History (8)
Changed 13 years ago by
Attachment: | buildUtil.py.diff added |
---|
comment:1 Changed 13 years ago by
Hold off on integrating this patch -- there's a bug in it that I'm still tracking down.
comment:2 Changed 13 years ago by
In dijit we've gotten rid of templateCssPath altogether; I'll leave this bug open though, just in case we want to merge it to a 0.4.3, or if we change our mind about supporting templateCssPath in dijit.
comment:3 Changed 13 years ago by
I think the way to fix this is by modifying the module's JS code that uses the interned string to hold on to the original path, and pass the path to the dojo.html.insertCssText() method and have that method fix the paths at runtime. This is what happens for templateCssPath/String variables inside widgets.
comment:4 Changed 12 years ago by
Owner: | changed from alex to James Burke |
---|
comment:5 Changed 12 years ago by
Milestone: | → 1.0 |
---|---|
Resolution: | → wontfix |
Status: | new → closed |
comment:6 Changed 12 years ago by
Resolution: | wontfix |
---|---|
Status: | closed → reopened |
comment:7 Changed 12 years ago by
Resolution: | → wontfix |
---|---|
Status: | reopened → closed |
This use case is obsolete in 1.0.
Diff with patch to fix bug