Hi Colin, thought I’d throw my thoughts at this thread for ya...
This is exactly where the flexibility of MODx becomes confusing for many, because there are so many possible ways to approach these issues. You just have to choose which approach is most appropriate for the task.
Including CSS and JS
You can choose to do this either by creating traditional css and js files and including them by URI in your templates as usual. This is probably the best method for doing this at this time, for several reasons. The first reason is that creating and storing CSS and JS as documents in MODx means that every request for these files will go through the MODx gateway before being rendered, which of course, means extra processing overhead on requests to these files. It also means that client-side browser caching of those files is going to be dependent on your document attributes (i.e. is it cacheable). Including the files as you would in any normal web page will avoid those issues.
This is not to say there is not a use for creating CSS or JS files as MODx documents to be stored in the database. In fact, you can use this technique to create dynamic CSS or JS files from snippets, chunks and other MODx tags. And future versions of MODx (1.0+ most likely) will be streamlined to handle these content types with reduced overhead when created as MODx documents. Then you can use the technique as below, where doc id 12 is your CSS file:
<link rel="stylesheet" href="[~12~]" type="text/css" media="screen" />
Also, you can specify as many links to CSS files or include as many in-line CSS style tags with inline style declarations as HTML will allow. MODx imposes no limitation on this.
Including Images
We are not handling binary content types of any sort at this time, as MODx documents. These will need to remain on the file system until binary content capabilities are supported in a future version of MODx.
Including external files
However, you can create MODx weblink documents to link to the URL of any file in your site, so you can still use the [~ID~] technique to reference any external files like this directly in your content, if you so choose.
Hope that clarifies a little more for you.