I was helping someone out on twitter today. They were very upset about DotNetNuke®, claiming that it sucked. That’s fine. Everyone thinks that something sucks. But usually that statement arises as an emotional response to being frustrated by something that should be “simple.” I agree. All applications should be simple. However, not everyone gets it right the first time. Luckily for us, the DotNetNuke® Corporation is fully aware of the usability shortcomings of DNN, and are actively fixing them in each release. You can easily see evidence of this when comparing version 3.x to version 5.x.
Today’s frustrated DNN user was very upset. He uploaded an image using the File Manager module, and then couldn’t find the image. I would suspect that this happens a lot more than we realize. He assumed that since he uploaded the image to the file manager’s “root” folder, the image would be in the root of the website. That’s not correct.
As you can see above, the images are in the “Portal Root,” but what does that mean? To some people, they might not even know what a “portal” is, or they might have their own definition for the term. That being said, it is very likely that many people will also misinterpret where the images physically live on the web server. In this case, here is the kind of URL being used to try to access an image file in the “Portal Root” of their website:
They will be immediately be met with an HTTP 404 File Not Found error though. That’s because the portal root is actually deeper in the website directory. That same image will actually need to be referenced using a URL closer to the following:
Replace the # symbol above with the PortalID of the website in question.
Why is that? Simple. DNN can and very often does host multiple websites from a single hosting account. That’s done for a variety of reasons, usually unique to each person(s) managing the site. Since we wouldn’t want each portal to share the same files uploaded by their own users (usually), they need to have their own “sandbox” to play in. This is for both security and to prevent files from being accessed or overwritten by other website users.
While that seems like a pain, DNN does a great job of making those files easy to access. For example, most modules make use of a file control that allows you to select files directly from your own portals directory.
Other modules that use the text editor make this even easier, if you’re looking for images. The default WYSISYG editor has a browser to help you find images.
Once you click on the images button in the toolbar, there’ll be a “Browse Server” button in the resulting dialog that allows you to see the images loaded in your portals directory. You can even upload images and create folders from this dialog too!
I hope this helps clear up this issue for a few people out there. Let me know if there are any other issues that you’re facing with DotNetNuke®. I’d love to help you!