I have a web application that uses Infragistics 8.1 NetAdvantage controls.
On my local machine, it automatically created an ig_res folder under our project folder structure. We never added it to the web application project.
When I publish it to my local IIS machine. I get 2 404 errors in my IIS log file that say
12:46:29 127.0.0.1 GET /testapp/ig_res/default/ig_shared.css 404
12:46:29 127.0.0.1 GET /testapp/ig_res/default/ig_splitter.css 404
Can anyone explain why our application is looking for these 2 files under the web_apps default path instead of looking for it in the ig_common like all the other files that were automatically created in the /testapp/ig_res folder.
Any help would be greatly appreciated.
Not sure I quite understand. Your saying that all of the other files that are included in the ig_res folder are being found in ig_common? That does not sound right. Here is some info on the Splitter and why its trying to find ig_res.
All of the Aikido-based controls (like the Splitter which it looks like you are using), by default use Application Styling. As a result, they attempt to look in the local project for a folder called ig_res which contains the Application Styling resources. This is also why the folder was copied into your project, which the Aikido-based controls do when you initially drop them on the form.
We decided to make the Application Styling framework look at the local project rather than a common virtual directory becase since the release of VS2005 we can no longer depend on IIS to be on the local system, which means we cannot depend on the ig_common virtual directory to be there. Its much more reliable to, out of the box, just add what we need to the local project and look there.
You can of course configure the controls to look whereever you want for these resources if you do not want to include them in your local project by using the controls StyleSetPath property, or you can change the path for your entire appliction by changing these attributes in the web.config:
<infragistics.web styleSetName="Default" styleSetPath="~/ig_res"/>
Does that help?
Devin
Devin,
What we didn't understand was if we needed to add all the files in the /testapp/ig_res folder to the web application project so when we publish/precompile it, the IIS folder would also have an ig_res folder. Since we didn't create the folder, we didn't add it to the web application prject and non of the files are published to the IIS site, yet we only got 2 404 errors. That is why I was thinking Infragistics must install them all to a folder under inetpub\wwwroot\aspnet_client.
Since we don't control (or know) when infragistics adds new files to the ig_res folder it makes it hard to add the files to the web app project. I think with all you said, then that your suggesting I either add all files from the ig_res to the project, or we manually copy that folder to the published website and make sure the path is correct in the webconfig? Is that what you recommend?
Thanks...
Yes, I would recommend including the folder in your project so that it gets published with the rest of your website. You should have gotten a dialog when you added the Slider control telling you that it needed to add the ig_res folder. You will only get the dialog if the ig_res folder has not been added previously.
Also, would you find it more intuitive if we had actually added the folder to the web project for you? I think right now we just create the folder in the projects directory and do not explicitly tell the project about it. That works in a VS Web Site project type since there is no project file, but as I think is your case in a Web Application project type, unless you explicitly tell the project about it, the VS publishing tools won't pick up on the folder.
Finally, I know there is some confusion around the ig_common vs ig_res folders so I will see if I can write a blog that goes into more detail about when/why each one is used.
I checked your blog listing and I didn't see an entry on the ig_res/ig_common topic. Is there some additional information on the topic somewhere? I know that the ig_res folder only comes into play when I use of the new Akido controls, but I am struggling for how best to source file manage this folder. You mentioned that when an Akido class control is first dragged onto the design surface you will be prompted to create the folder and files will be copied into it. However the problem comes after point. Once you have the ig_res folder, if you drag additional Akido controls onto your design surface or change the style on an existing control how do you easily identify what you need to add/remove under the ig_res folder into your source manager without doing a diff between your physical drive and the source file management solution?
I would suggest checking them into Source Safe. I do not think we currently try to re-add the styles if they are missing.
You should have gotten a dialog when you dropped the control onto the VS design surface telling you that it needs to copy the Styles into the project directory. It would be interesting to have you create a new project from scratch to see if you get teh dialog. If you don't then there is a problem with the control.
I will talk with the developers to see if we can change the behavior to automatically include the folder in the project.
I have one more question in regards to sourcesafe. Do we need to check that folder into sourcesafe so when another developer does a get, the project will compile and build or does infragistics automatically re-add these files when you build the web application (if there missing)?
My only concern is we'll never know when to add new files to our sourcesafe/project. The problem is that files get added into this folder, without us really knowing when it happens. In any case, it might be easier if the files are automatically added to the project, or a message prompt that asks if you want to.
Our best bet probably is to just have a batch file that precompiles the web app, then copied that folder to the IIS root folder.
Thanks again for the quick responses.