8

We're using SDL Tridion 2011 SP1 HR1, DD4T 1.25.0.0 (.Net website with IIS)

We wanted to load a (navigation) XML file from the filestore if it existed (as a debug override) and get it from the default storage (broker) database by default so we looked to change the initial setting in the cd_storage_config.xml which was...

<ItemTypes defaultStorageId="defaultdb" cached="false">
    <Item typeMapping="Page" cached="false" storageId="defaultdb"/>
    <Item typeMapping="Binary" cached="false" storageId="defaultdb"/>
    <Publication Id="26" defaultStorageId="defaultdb" cached="false">
        <Item typeMapping="Binary" storageId="defaultdb" cached="true"/>
        <Item typeMapping="Page" storageId="defaultdb" cached="true"/>
        <Item typeMapping="Page" itemExtension=".xml"  cached="true"  storageId="defaultFile"/>
        <Item typeMapping="ComponentPresentation" itemExtension=".ascx" storageId="defaultDataFile"/>                    
    </Publication>      
</ItemTypes>

when we change the line specific to XML extensions to

    <Item typeMapping="Page" itemExtension=".xml"  cached="true"  storageId="defaultdb"/>

I would expect this to simply default to the broker database - but it doesn't; I still receive a 404 as the file is not physically on the filestore?

Realising that we were mixing two things here :

  • IIS checks for files, and serves those if those files exist on the file system;
  • If they don't exist, then it processes the MVC code which in turn uses the cd_storage_config.xml values...

But alas, we just receive a 404 ... are we missing another config somewhere or have we misunderstood the processing here?

Thanks

7

Resolved!

So continuing the search after the post I see that Jan H affirms that he doesn't think

it is a valid configuration to have two of the same itemType mappings

Makes perfect sense in the context of the question/answer in the post Is it possible to configure Tridion’s deployer to send one ItemType to multiple storage types? although frustrating as we're trying to be granular with the inclusion of the itemExtension.

On removing the line altogether we actually get the behavior we expect. Thanks to Harald Hoffelinck and Jon Primmer for working through this!

Update: I note in the documentation (requires login) that we are told...

You can store specific types of Pages (that is, Web pages with specific file extensions) in a different storage medium. To do this, insert an Item element inside the ItemTypes element:

Other possible values for itemExtension are .Aspx and .html

So it seems that it is, indeed, not allowed to do this with the .xml extension on the PAGE level...

and reading further, you can associate the .xml with a component presentation:

You can store specific types of Component Presentations (that is, Component Presentations with specific file extensions) in a different storage medium. To do this, insert an Item element inside the ItemTypes element:

Possible values for itemExtension are:

.Jsp
.Ascx
.Xml
.Txt

  • +1 for the nice follow up. I like Nuno's approach where you set a default and only change items that differ. You could probably remove the other items for that publication and swap the cache setting. Effectiveness disguised as creative laziness (or vice versa). :-) – Alvin Reyes Jun 19 '13 at 14:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.