我正在使用laravel 5.1框架,并且我想在刀片服务器模板中使用asset()函数。
问题是我的应用程序可以具有不同的域:开发模式中的http://www.domain1.com和http://www.domain2.com。
当我使用正确的asset()语法时,它将为文件添加完整路径,包括域。
<link href="{{ asset("/css/style.css") }}" type="text/css" />
转换为
<link href="http://www.domain1.com/css/style.css" type="text/css" />
问题是:是否可以配置laravel,所以它不会添加完整的域名。预期结果是:
<link href="/css/style.css" type="text/css" />
有什么想法吗?
ASSET_URL
包含将用于您的asset()
助手的前缀,当它的值为空(默认情况下)时,它将使用您的APP_URL
。使用" "
作为前缀将确保您所有资产路径都将从您正在使用的任何域的根开始(例如<link href=" /css/app.css" rel="stylesheet">
,请注意URL之前的空格)。使用此解决方案,您将来只需更改ASSET_URL
设置即可轻松切换到CDN。不好的是,它会在所有资产网址中添加一个空格前缀,浏览器会忽略该前缀,但是在使用javascript时可能会遇到其他问题。[我想不通的地方是当您可以从不同目录级别(例如http://www.domain1.com/和http://www.domain2.com/subpath/)访问站点时。
<base href="/yourapp" />
快速解决方案!