On Wed, 23 Mar 2011 22:43:55 +0100, raulmt <rau...@gmail.com> wrote:

I wanted to know if there is a reason why Tapestry couldn't just answer the requests for assets independently of the requested version. I believe that
it is better to answer with a newer version than to just not answering at
all… In AssetDispatcher, this could be done by just processing the request
when its path starts with RequestConstants.ASSET_PATH_PREFIX and then to
generate the virtualPath by stripping from this constant to the next "/"
(assuming there is a version in the middle, which will be true for all the
URLs generated by Tapestry).

Could this cause problems in some way?


This sounds like a very good idea. I can think of a few scenarios where it would be helpful:

- cached or saved html documents from your application, with old asset URLs

- external pages referencing assets on your site

- google image search - the search engine might have indexed an old asset URL that no longer works

A version upgrade resulting in 404 for all old asset URLs just feels wrong. Cool URIs don't change :)
http://www.w3.org/Provider/Style/URI


There is however one potential problem I can think of:
An application running v1.2 gets a request for a newer version /assets/1.3/ctx/script.js and delivers its own copy of that script. That script will then get cached by clients and proxies (maybe even your own Squid server) so when you later upgrade your app to v1.3, clients will use the cached copy and your app won't even get a chance to deliver the upgraded script.

Perhaps the AssetDispatcher could check the requested version number and if it doesn't match the app version, send a 302 redirect to the "correct" URL?
/assets/1.3/ctx/script.js --> /assets/1.2/ctx/script.js

Or perhaps it should only deliver the asset if the requested version os older than or equal to the app version? Determining "older" and "newer" would however assume people name their application versions in a certain way.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to