Get Product Url by Product Sku Magento 2.

You can get the product URL by SKU in Magento 2 using ProductRepositoryInterface.

Using Magento\Catalog\Api\ProductRepositoryInterface you need to call the get($sku) method of the interface.

You can get product URL by store view level from Product URL by specific store view in Magento

If Product SKU not found, throws an error,

<?php
namespace Path\To\Class;

use Magento\Catalog\Api\ProductRepositoryInterface;
use Magento\Framework\Exception\NoSuchEntityException;

class ProductUrl
{
    /**
     * @var ProductRepositoryInterface
     */
    protected $productRepository;

    /**
     * @param ProductRepositoryInterface $productRepository
     */
    public function __construct(
        ProductRepositoryInterface $productRepository
    ) {
        $this->productRepository = $productRepository;
    }

	/**
	 * This method returns the url from the product sku
	 *
	 * @return string|null
	 */
	public function getProductUrlBySku(): ?string
	{
	    $sku = "24-MB01";
	    try {
	        $productUrl = $this->productRepository->get($sku)
	            ->getProductUrl();

	    } catch (NoSuchEntityException $noSuchEntityException) {
	    	$productUrl = null;
	    }
	    return $productUrl;
	}

call $this->getProductUrlBySku(); from template or other php class.