Sitecore IconCache images not displaying, paths are incorrect - icons

I'm trying to set up a Sitecore 8.1 instance that I've taken over from another agency. I have the site running but none of the image files from the IconCache are displaying in Sitecore:
I inspected the missing images and found that their paths are incorrect- they all begin with "/~/icon/" rather than "/temp/IconCache"
In the production instance, the icon paths are correctly set to /temp/IconCache.

There is a know issue about this missing icons.
See Sitecore.Support.100371.100542
https://github.com/sitecoresupport/Sitecore.Support.100371.100542/releases
Another thing you can try is run the Clean up databases from the Control Panel, core database, but likely you need the patch.
For further research:
The icons are stored on file system in .zip files below:
\sitecore\shell\Themes\Standard\
For example this url
/~/icon/Office/24x24/publishing_restrictions.png.aspx
go to the
\sitecore\shell\Themes\Standard\Office.zip
Check if the icons are on file system. And check if the url works, if the icon url not work find out why. which error? use the original Sitecore config files and web.config file. and check if it works.
You need to have this in config
<customHandlers>
<handler trigger="~/icon/" handler="sitecore_icon.ashx" />
And in the web.config
<handlers>
<add verb="*" path="sitecore_icon.ashx" type="Sitecore.Resources.IconRequestHandler, Sitecore.Kernel" name="Sitecore.IconRequestHandler" />
After the icon is used it is stored in the
\temp\IconCache
directory.

Related

dynamic web.config appsetting

I have a web application that we publish and provide for users to install and run on their local network. They choose whether they run it as an internet, or intranet application.
When we publish the application we label the folder with the publish date (e.g. 20140815) so we know which version they have. However, when they contact support, it is a pain for them to get on the server to see the folder information.
I want to add an appsetting for cloudVersion and display it on the license page so they can easily provide it from wherever if needed. Also, they feel better seeing the version increase so they know they are getting value with the service contract.
<add key="cloudVersion" value="20140815"/>
I would like to automate the version in the appsettings. I was hoping I could use a Web.Config transform to set it with a dynamic yyyymmdd, but can't see how to do that and have found nothing in my web search.
<appSettings>
<add key="cloudVersion" value="GETDATE()" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
</appSettings>
Is this possible? If so, how? If not, is there a better approach to achieve the same result?
Short of finding a great solution for this, I have elected for the following:
After publication, I run a bat file that does the following:
copy the published directory and rename with today's date
update the Web.Config appSetting value
compress the updated directory using 7zip
upload the compressed directory to Google Drive so my support team can provide it to our users.
You can see how I modified the string here:
bat file to modify web.config setting

Facing issues while trying to set Upload Limits settings in Page level

I have upload functionality in my application. I was facing an upload issue and found out that in Web.Config there is httpRuntime tag. I set the change as below.
<httpRuntime requestValidationMode="2.0" maxRequestLength="2147483647" />
This fixed my upload issue. The above is my Web.Config in my root folder, one that we get by default.
Questions.
Can I create a seperate Web.config file? If Yes, I have to upload the files in some other Virtual Directory and my code is in some other project. So where shall i place the Web.Config file ?
Is it possible to set these settings at page level?
You can add a web.config file to nearly any folder (I doubt the app_data would allow it (but I could be wrong, however this is beside the point)).
You can of course (if possible) create many folders for each setting you need. In other words, have 1 file per folder to get around your issue.
Or, create a new parent folder which you want all sub folders to 'inherit' your new web.config file from. Your web.config file goes into this new parent folder.
Remember, the web.config file inherits from the parent web.config file, so you don't need to write the entire configuration again, just the section you want to add/overwrite.

Web publishing in ASP.Net does not publishes for following file formats

I am trying to publish a web site, in which css directory includes different files for font settings.
Following are the file & extensions:
calibri-webfont.eot
calibri-webfont.svg
calibri-webfont.ttf
calibri-webfont.woff
calibri-webfont.oft
Now when I try to publish website, it just publishes .svg file,other files I need to copy manually.
Whiles publishing following options I have checked:
Replace matching files with local copy
Only files needed to run this application.
Expected: as all those files are required, I want those to be get published automatically, than manually coping those.
How this can be achieved?
I know you asked this a very long time ago, but today it ranks high on Google and I've just had the same problem. Today's fix was that Azure does not have MIME types configured for several font file formats. This must be added to web.config otherwise Azure simply returns a 404 error (even though the files are actually published).
<system.webServer>
<staticContent>
<mimeMap fileExtension="woff" mimeType="application/font-woff" />
</staticContent>
</system.webServer>
Source:
http://www.codepal.co.uk/show/WOFF_files_return_404_in_Azure_Web_Sites
If your files are not included in the project (just in the file structure), in visual studio click the Show All Files Icon in the solution Explorer (looks like 3 pages). Right Click on the files and select "Include in Project"
Access the file properties by right clicking, then make sure the Build Action property is set to "Content".
file properties by right clicking, then make sure the Build Action property is set to "Content".
Works fine

Maximum upload size in ASP.NET

I understand that I can add the following to the web.config file:
<httpRuntime maxRequestLength="10096" executionTimeout="120"/>
This will increase the upload limit for the application. The problem is that the WEB.CONFIG file is part of the application and part of my installation. I have multiple customers with different values they want to use. The Web.config file is overwritten each time they install a new version of my application. Thus, this would overwrite any modifications to the upload size they might have made.
Currently I have my customers change the Machine.Config file, but this is really not the best solution as they are changing the parameters for the whole IIS Server.
I figured maybe I could have the customer add an App.Config to the folder, where they could set their own parameters. Since that file is not part of my installation, it would stay.
Has anyone else had this problem, figured out a way to work around having the customer have an ability to have their own custom config file that will not get overwritten when they install a new version of the application?
Thanks,
Cory
In web.config:
<httpRuntime configSource="httpRuntime.config"/>
In httpRuntime.config:
<httpRuntime maxRequestLength="10096" executionTimeout="120"/>
See the configSource attribute in General Attributes Inherited by Section Elements and SectionInformation.ConfigSource Property on MSDN for an explanation.

Cannot browse to node/folder name without extension in Umbraco

I'm using IIS7 and Umbraco 4 to run a clients site but I'm having issues browsing to pages with extensionless URLS.
The site is running several languages which are separated by Umbraco Folders. What I want to do is use the primary domain (.com) for all sites and request a specific one using the abbreviated country name i.e. mydomain.com/es (for spanish site). The trouble is I can only access the page by using the .aspx extension i.e. mydomain.com/es.aspx and without the extension i get a 404 error.
It's been suggested that I add the page I am requesting as a default dosument in IIS but this has not worked.
I've also tried setting the "umbracoHideTopLevelNodeFromPath" value to false but this makes no difference.
The system will be migrated to the clients servers once complete so I don't really want to add URL rewriting rules within IIS so is there anything I've missed which will allow me to do this?
Thanks
so, you want to browse with directory url's then,
this is very mutch possible.
first, open your web.config
find the line below, and make sure the value is set to true
<add key="umbracoUseDirectoryUrls" value="true" />
then, you will need to add a wildcard mapping in IIS
the steps you will need to take in IIS7 are explained in this post:
[http://learn.iis.net/page.aspx/508/wildcard-script-mapping-and-iis-7-integrated-pipeline/][1]
and if you would ever need to do this on IIS6
Open IIS6
Right click on your website
Select Properties
Click the home directory tab
Click Configuration
On the mappings tab, click the Insert button, next to the wildcard mappings box
Click Browse and find the aspnew_isapi.dll, this can usually be found here:
c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll
Untick verify that file exists and click OK
Click OK
Click OK
Done
[1] : http://learn.iis.net/page.aspx/508/wildcard-script-mapping-and-iis-7-integrated-pipeline/
I know I'm a bit late in this one but if you want to have a directory NOT handled by Umbraco, try editing your web.config. Under the node, append your folder name to the existing value for umbracoReservedPaths. After the application restarts, you should be able to enter your folder and it will bypass the Umbraco handler.
<configuration>
...
<appSettings>
<add key="umbracoReservedPaths" value="~/umbraco,~/install/,~/MyFolderName/" />
</appSettings>
...
</configuration>

Resources