invalid extension png

i'm not sure why CB is tracing this message:
Message:
WARN 03:37:47.459 PM coldbox.system.interceptors.SES
Invalid Extension Detected: png detected but it is not in the valid
extension list: json,jsont,xml,html,htm,rss

ColdBox 3.0 is adding a new feature for the SES interceptor to allow “extension detection” to help support ReSTful services. The feature essentially can sense an extension for a ReSTful route such as /api/foo/bar.json and then serve a JSON response.

Your application is requesting a image resource; however, ColdBox is actually trying to serve a ColdFusion request. You should evaluate your URL Rewrite Rules to ensure the directory your images are served from is not rewritten to /index.cfm/{path_info}. Also, you may want to disable extension detection in your routes file: setExtensionDetection(false);

Aaron Greenlee
http://aarongreenlee.com/

I've seen this quite a lot with the blackberry browser. It doesn't
seem to be able to interpret the base href properly and sometimes
routes image requests via index.cfm. This happens with other MVC
frameworks as well. What I've started to do is add something like:

<cfif findNoCase('jpg,png,js,gif', listLast(arguments.targetPage, '.'))>
  <cfheader statuscode="404" statustext="Not Found">
  <cfreturn false>
<cfelseif findNoCase('index.cfm', listLast(arguments.targetPage, '/'))>
  <cfset application.cbBootstrap.processColdBoxRequest()>
</cfif>

John,

Can you provide an example URL? I don’t understand how the browser can effect server side rewrite rules.

Are you rewriting index.cfm to provide SES routes? http://domain.com/foo/bar >> http://domain.com/index.cfm/foo/bar?

I want to make sure I’m not missing something for my Blackberry visitors.

Thanks,

Aaron

thanks. disabling detection is what i did.

still can't wrap my head around this detection feature. currently with
or without this detection i can serve html pages from anywhere in my
cf app, i mean cf doesn't even process html as a cf request. How is it
going to detect the html page?

ok. its going to detect the html page if there is a rewrite rule
ie: localhost/news/article1.html >>> localhost/news/process.cfm?
page=/
news/article1.html

So how is the extension detection going to help here?
I don't understand it because i don't know how it could or should be
used.

Perhaps this helps.

  1. I have a route http://domain.com/api/resource/id.json.
  2. I’ve implemented URL Rewrite Rules in ISS (or any other Web server) to send all requests begining with “api” to ColdFusion: (^api) as follows: /index.cfm/${path_info}
  3. ColdFusion receives this request at index.cfm and the ColdBox framework is initialized
  4. ColdBox’s SES Interceptor evaluates the cgi.path_info and sees that there is an extention of “.JSON” and makes a note that if renderData is called the format should be “JSON”.
  5. The above process makes it very easy to build system than can return complex data as XML or JSON (for example) simply by changing the extension.
    I suspect that your rewrite rules were actually sending a request for an image to ColdFusion.

Aaron Greenlee
http://aarongreenlee.com/

the extension detection is a feature that allows the ses interceptor to continue parsing the incoming routing without the extension as it is removed and placed in the request collection for you as “rc.format”

Luis F. Majano
President
Ortus Solutions, Corp

ColdBox Platform: http://www.coldbox.org
Linked In: http://www.linkedin.com/pub/3/731/483
Blog: http://www.luismajano.com
IECFUG Manager: http://www.iecfug.com

In my case, it was a bad IIS rewrite rule which included two
conditions. one for https and one for image extensions. I fixed them
and everything is working like a charm for CB.

Hi Aaron,

I may be talking about something unrelated, but I've seen URLs like:

http://myapp/index.cfm/handler/action/foo.jpg

Which nearly always have a user agent of Blackberry browser.

Odd that it would only be Blackberry. Guess CFML developers are not the only ones who can make bugs.