// Copyright 2006, 2008, 2010 The Apache Software Foundation
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
s, to convert the Asset's
to a URL that can be accessed by the client. The asset path, within the classpath, is converted into a shorter virtual path. The term "alias" here is generally referred to as "virtual folder" elsewhere.
Service configuration is a map from folder aliases (short names) to complete paths. Names should not start or end end
with a slash. Generally, an alias should be a single name (not contain a slash). Paths should also not start or end
with a slash. An example mapping would be
As originally envisioned, this service would simply optimize classpath assets, allowing the URL path for such assets to be shortened (and have a version number added, important for caching); thus the word "alias" makes sense ... it was responsible for creating an "alias" URL shorter than the default "classpath" URL.
Starting in Tapestry 5.2, this changed; all classpath assets must be "aliased" to a shorter URL path. Any URL that can not be shortened is now rejected. This simplifies creating new libraries, but also helps with security concerns, as it limits which portions of the classpath can ever be exposed to the user agent.
Tapestry automatically contributes a number of mappings: for the application root package itself (as alias "app") and
for each library (via
, stripping off the asset prefix, and re-expanding any aliased folders back to complete folders.
s can be created automatically for each mapping.