1

Just wanted to check, if we have any out of box features like any existing TBBs or CTs to publish or Do I need to create a new one and update the storage configuration to point to File system

  • DXA, by default, publishes binaries to the broker but are downloaded to the BinaryData folder in the webserver. Are you looking for something different? Also, DXA has configurations as JSON and hence storage configuration based on JSON mimetype will not render the site correctly. – Shiva May 30 at 16:57
  • Please explain a bit more detailed about your implementation? – Velmurugan May 31 at 13:10
  • We wanted to publish few json and html pages to File system rather than broker DB. I saw few TBBs like Publish resources, Publish configuration etc which publishes the config and resource components as json and store them in binary data. So, just wanted to check if we have any other default TBB which publishes other components as JSON – Developer May 31 at 13:40
  • 1
    Can you explain why you want to publish these things directly to file system rather than to database (in combination with a file system cache), as DXA supports OOTB? – Rick Pannekoek May 31 at 14:25
  • We will be just maintaining some labels(key-value) pairs translated into different languages using Mantra from sites and the application team needs to output them as json in a file system, without any dependencies of APIs or querying the broker DB. – Developer May 31 at 19:23
2

Based on your above comments, I still feel that you can use DXA to push out the JSON files. JSON files do not get refreshed until app pool recycles and is dependent on your cache settings and timeouts.Based on your frequency of publishing, you can build a custom controller to force retrieving the JSON from the database. In older versions of DXA, we had a hidden /admin/refresh to be able to do something similar to the above but will have to be disabled in a production like environment for application stability and security purposes. Now answering your questions, I see 2 options.

Option 1 - Use a new site for your custom JSON files

If you do not want any DXA and CIL dependency, you can create a storage extension to copy the JSON files published from SDL to a separate static website. You would need a new website and replication softwares to ensure that all your webservers have the JSON files, once they are published from SDL (if you do not have shared storage).

Option 2 - Use your DXA site for your custom JSON files

If you want to use the DXA website but want to avoid any DXA and CIL dependencies, you can create your HTTPHandler (.NET) for your JSON files and retrieve them from the filesystem before DXA is handling the request.

<add name="CUSTOMJSONContentModule" type="YOURCUSTOMJSONContentModule" />
<add name="DxaStaticContentModule" type="Sdl.Web.Mvc.Statics.StaticContentModule" />

If you like additional inputs from the community, please update your question! Hope it helps.

  • Thank you. This helps. – Developer Jun 7 at 15:03
  • @Developer, please consider accepting this answer if it addresses your question and be sure to vote if you didn't already. Thanks! – Alvin Reyes Jun 9 at 11:32

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.