Wednesday, June 23, 2021

Adding Cache-Control headers to Static Files in ASP.NET Core

 Implement Caching to Static files in the asp.net core

When you create a new ASP.NET Core project from the default template, you will find the StaticFileMiddleware is added early in the middleware pipeline, with a call to AddStaticFiles() in Startup.Configure():

Please replace the app.UseStaticFiles() from the below code:

public void Configure(IApplicationBuilder app)
{
    // logging and exception handler removed for clarity

    app.UseStaticFiles();

    app.UseMvc(routes =>
    {
        routes.MapRoute(
            name: "default",
            template: "{controller=Home}/{action=Index}/{id?}");
    });
}

to

using Microsoft.Net.Http.Headers;

app.UseStaticFiles(new StaticFileOptions
{
    OnPrepareResponse = ctx =>
    {
        const int durationInSeconds = 60 * 60 * 24 * 14;
        ctx.Context.Response.Headers[HeaderNames.CacheControl] =
            "public,max-age=" + durationInSeconds;
    }
});


This enables serving files from the wwwroot folder in your application. The default template contains a number of static files (site.cssbootstrap.cssbanner1.svg) which are all served by the middleware when running in development mode. It is these we wish to cache.

for more details - https://andrewlock.net/adding-cache-control-headers-to-static-files-in-asp-net-core/

Saturday, May 29, 2021

SEO for different countries

 

There are 3 options for SEO in different Countries:

1.       Country Code Top Level Domains (ccTLDs):

a.       A ccTLD (Country Code Top-level Domain) is a two-letter domain extension used primarily to identify an association of some kind to a specific country or territory. The first thing to do is you have to purchase a domain name whose extension should be your country domain such as .com which is global .http://co.uk for UNITED KINGDOM , .http://co.in for India , .ae for gulf etc. . Then you have to use Google webmaster geotargeting feature This tool allows you to set which country your website is targeted to.

b.       Automatically associated with the country they cover (.de to Germany)

c.       Starting SEO from scratch with no domain history and we need to start submitting website on Local search engine and directories 

d.       Focus on Local SEO to Boost traffic only from the targeting country 

e.       webhosting server is also matter, make sure that if you are targeting United Kingdom your website hosting server will be UK based.

f.        This strategy Increased costs of domain registration.

g.       SEO work on one site won’t benefit all sites, as they are all separate websites.

 

2.       Subdomains with Generic Top-Level Domains (gTLDs) or Country Names:

a.       Subdomain like Uk.domain.com, Us.domain.com

b.       this solution only works when the parent website is a .com domain.

c.       Has some connection to the current SEO authority of the main website, which can aid performance when launching in a new country

d.       SEO work on one site won’t benefit all sites, as they are all separate websites except domain authority

 

3.       Subdirectories with Generic TLDs (gTLDs) or country names

a.       Subdirectories like Domain.com/uk , domain.com/us

b.       SEO performed on one part of the domain will benefit all the country folders as it’s one site

c.       There is also the added inheritance of the authority of your original website so you aren’t starting from scratch when you go into a new market

d.       Links between countries are seen as internal links, not external ones, which helps your backlink profile as it will be made up predominantly of links from other people’s sites and not mainly from your own site

e.       In the search results, it’s not as obvious that the country subfolder is specifically for users in that country

f.        No automatic association in search to the target country

 

According to me, for the low budget 3 is the best option, so I want to choose this option. But if your budget is more than 1st option is defiantly better.


Google Merchant Feed for different countries with different currency.:

 

We need to submit the currency in the local currency of country of sale because

1.       One of the Google Shopping policies states that the price in your product feed needs to match the price on the landing page.

2.       Google has developed something called currency conversion. It will convert the price in your feed based on exchange rates from Google Finance and show these in your Shopping ads.

To support multiple currency support in the google AdSense, we need to upload the product with local currency and this price with currency should be same on the Landing page.

 

In the AdSense campaign, Currency conversion automatically converts the price in your product data to the currency of the new country of sale and displays both prices in your ads and free product listings. This makes your ads and listings understandable to users in other countries while allowing you to continue using your existing website and landing pages with minimal changes.

 

So, we will show the same currency & price on the Product landing page as we submit in the google Feed, but when customer lands on this page we will ask to change currency (show the currency of country by detecting the country).

 

 

Thursday, March 11, 2021

Background color not showing in print preview

 The Chrome CSS property -webkit-print-color-adjust: exact; works appropriately.

media print CSS in the body:

@media print {
body {-webkit-print-color-adjust: exact;}
}

503 This mail server requires authentication when attempting to send to a non-local e-mail address.

 Server error: '503 This mail server requires authentication when attempting to send to a non-local e-mail address. Please check your mail client settings or contact your administrator to verify that the domain or address is defined for this server.'

and Error:

Your message did not reach some or all of the intended recipients.

      Subject: test

      Sent: 10-03-2021 15:15

The following recipient(s) cannot be reached:

 'example@domain.com' on 10-03-2021 15:15


This error occurs mostly in Windows system. The users can send emails to local domain systems but can’t send emails to external addresses. Why they do server sends this message: 503 This mail server requires authentication when attempting to send to a non-local e-mail address. To resolve this error one should check the settings of the mail client or should contact the administrator for verification of address or domain are defined for the server or not.

Cause
  • SMTP server needs authentication for sending the mail to the external or non-local address. SMPT authentication and server are not configured by the email client.
  • Firewall or proxy software of the email doesn’t allow the SMTP authentication.
  • The email server may not match the settings of the server or have an incorrect credential configuration.
Symptoms
  • On Windows System, unable send mail through PHP scripts.
  • You will the following error while accessing the script of the web browser if you have defined ini_set ( ‘ display_error ’ , 1 );
SMTP server response: 503 This mail server requires authentication when attempting to send to a non-local e-mail address. Please check your mail client settings or contact your administrator to verify that the domain or address is defined for this server.
  • Addresses in the local host are not be added to Whitelist of the Mail Server Settings. Mail Server Settings is available in the Tools & Settings.
  • The error specified above is seen in the Activity available in the Logs of the SMTP server.
Resolution

  1. Log on to the Plesk.
  2. In the Whitelist add the address of the local host.
Go to Tools & Settings >> Mail Server Settings >> White List >> Add Address: Check the following entries


mail1.png

Code:
CONFIG_TEXT: 127.0.0.1/32
::1/128
Mail will not be counted to Outgoing Mail Limit, when you add localhost address to the whitelist. If the address of the local host is not whitelisted, you need to add correct authentication credentials in the script of the mail. If this does not work, you should follow subsequent steps.
  • Connect the Plesk server through RDP.
  • In the Mail Enable option, launch MailEnable Management console. MailEnable is available in All Programs of Windows Start
  • Right click on the SMTP, which is in the MailEnable Management console and open the properties.

  • Move on to the Security tab in the SMTP Properties. Now disable the “Disable all catchalls” and “Authenticated senders must use the address from their post office” options and click on Apply button.
mail3.png

  • Select Denied relay rights option from Privileged IPs… available in the Relay tab. You can send emails through the server from a web page or web server. To do this you have to add the IP address of the users who can send the mail. Click Add button and enter the IP address of the user and click Close. Now click Ok button to save the changes.
mail4.png

  • At last, you have to restart the services of MailEnable SMTP Connector. To do this go to Servers >> localhost >> System >> Services Status in the MailEnable Management console. There you have to select the MailEnable SMTP Connector and then click Restart option.




Wednesday, February 17, 2021

SQL SERVER - How to capitalize the first letter of a record in SQL

 Cast your ntext to nvarchar(max) and do the upper and left operations. Sample below.

SELECT UPPER(LEFT(cast(Comments as nvarchar(max)),1)) +
LOWER(SUBSTRING(cast(Comments as nvarchar(max)),2,
LEN(cast(Comments as nvarchar(max)))))  
FROM dbo.Template_Survey;

Following should work for update.

Update dbo.Template_Survey SET Comments = 
UPPER(LEFT(cast(Comments as nvarchar(max)),1)) +
LOWER(SUBSTRING(cast(Comments as nvarchar(max)),2,
LEN(cast(Comments as nvarchar(max)))));  

Sunday, February 14, 2021

google - What is Bounce rate, Domain Rating (DR), & ctr?

Bounce rate


Bounce rate represents the percentage of visitors who enter the site and then leave ("bounce") rather than continuing to view other pages within the same site

Bounce rate (%) = Visits that access only a single page (#) ÷ Total visits (#) to the website

Example

If user visits single page then bounce rate will be

Bounce rate = 1/1*100 = 100%



If user visits two page then bounce rate will be

Bounce rate = 1/2*100 = 50%

What Is Adsense Click-Through Rate (CTR)?

Google Adsense Click-through Rate (CTR) represents the number of clicks on your ads against the number of times they’ve been shown o your site visitors.

For example, 
If your ads get 5 clicks out of 100 views (impressions) your Adsense CTR would be 5%.

Here’s the simple formula Google uses to calculate Adsense CTR

Total Number of Ad Clicks ÷ Total Number of Impressions = Click-Through Rate (CTR)

CTR = No. of clicks / No. of exposures
CTR% = No. of clicks * 100 / No. of exposures


What does Domain Rating (DR) mean?


Domain Rating (DR) is a measure of a website's authority based on its backlink profile. The scale runs from zero to a hundred. Generally speaking, the higher this number, the stronger and more authoritative the site is.

How is it calculated?

Domain Rating (DR) looks at the quality and quantity of external backlinks to a website. It doesn't take into account any other variables like link spam, traffic, domain age, etc.

How should I use it?

Domain Rating (DR) means very little in isolation. However, it does provide an excellent way to compare the relative authority of two or more websites in the same niche. If a site has a lower DR than its competitors, then that may affect its ability to rank for relevant keywords in search engines.

How can I increase my Domain Rating (DR)?

Get more high-quality backlinks to your website. That's the only way.

Saturday, February 13, 2021

The script has an unsupported MIME type ('text/html').

ServiceWorker: The script has an unsupported MIME type (chrome-extension) 


The Error is showing because of the incorrect path and service worker is not accessible.

Path defined for js is not correct, might be you have taken relative path and this is vary on different pages.

Replacing:

'service-worker.js'

with:

'/service-worker.js' OR './service-worker.js'

in (navigator.serviceWorker.register('/service-worker.js')


The service worker file is not present at http://domain.com/service-worker.js so the server is returning index.html instead. Then the registration function has no idea of what to do with a index.html file and tells you that the MIME-type is not correct. 

A quick fix would be to copy the service-worker.js file to the public folder so that when you hit http://domain.com/service-worker.js you see the file in the browser. 

Remember to go to ChromeDev > Applications > ServiceWorkers and hit Unsubscribe. in order to remove the errored one. Remember also disable cache 

Thursday, February 4, 2021

Install Google Analytics to WordPress Without a Plugin

 

Install Google Analytics to WordPress Without a Plugin


In order for Google Analytics to start tracking your visitors, the tracking code mentioned above needs to be present on every page of your site you want to track user behavior on. Usually, that’s all of them. Here’s how you can achieve that manually.

Option A: Insert the Code Into header.php
One of the main ways to add the tracking code to your site is to insert it into your header. This way, it will load on every page.

Most standard themes have a header.php file that is responsible for outputting the site header section. So, you can simply input the Google Analytics code here.

However, when you make changes to theme files, be aware that it’s always best to do it in a child theme. Otherwise, they will get lost when you update your main theme. Child themes are super useful in general and you should definitely read up about them. Also, don’t forget to back up your WordPress site when making any changes like this.

Once you have created your child theme, simply copy the header.php from the main theme into it and start editing. You can do that directly in the WordPress back end via Appearance > Theme Editor.

add google analytics tracking code to wordpress header file via the theme editor Copy and paste the tracking code from Google Analytics into header.php right after the opening <head> tag.
Also, make sure the code is wrapped in <script>...</script> brackets! Otherwise, browsers won’t recognize it for what it is. That’s it! Now save and you are good.


Option B: Use functions.php
Another possibility to add Google Analytics to WordPress without a plugin is to use the functions file. You can do the same thing as we did above, however, instead of adding the tracking code to header.php directly, you insert it into the head section via a function.

To do so, simply edit your (child) theme’s functions.php file and add the following piece of code (but use your own measurement or tracking ID instead of ours):

function ns_google_analytics() { ?>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-B175YGY1T1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());


gtag('config', 'G-B175YGY1T1');
</script>
<?php
}


add_action( 'wp_head', 'ns_google_analytics', 10 );
Save, upload, and from that moment, Google Analytics should start tracking what’s going on on your site.