【问题标题】:Laravel assets urlLaravel 资产地址
【发布时间】:2014-09-07 19:07:53
【问题描述】:

我已经安装了 Laravel 并开始尝试编写一个应用程序。我在与 /app 相同的目录中为我的资产创建了一些目录。但是当我尝试访问本地主机中的图像时,例如:http://localhost/assets/images/image.png

我也试过了:http://localhost/app/assets/images/image.png

当我尝试在视图中设置背景图像时遇到了问题,并且一直出现 404。

这就是我的应用在 app/ 下的样子

->app
->assets
->commands
->config
->controllers
->database
->lang
->models
->start
->storage
->tests
->views
app.txt
routes.php
filters.php

但我收到有关请求的错误。我已经仔细检查了网址是否正确。

Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException

【问题讨论】:

  • 您的资产(以及其他任何需要被浏览器直接访问的内容)需要进入 public/ 目录,因为这应该是文档根目录。 app/ 文件夹不应该被浏览器访问。

标签: image url laravel assets


【解决方案1】:

您必须将所有资产放在app/public 文件夹中,并且要从您的视图中访问它们,您可以使用asset() 辅助方法。

例如。您可以在您的视图中检索assets/images/image.png,如下所示:

<img src="{{asset('assets/images/image.png')}}">

【讨论】:

  • 语法 {{asset()}} 在我的情况下根本不起作用。我正在使用背景: url('{{asset('assets/images/image.png')}}') 这根本不起作用哈哈。 php 语法错误。不知道为什么当它总是在每个上下文中返回错误时我一直看到该语法
  • 不是url('{{asset('assets/images/image.png')}})!!,大括号{{ 'some string'}}在blade模板引擎中表示<?php echo 'some string' ?>,不用调用url函数,asset函数会返回一个您的图片的有效网址,请尝试我上面帖子中的确切代码,不要添加任何内容。
  • 别忘了把所有的资产放在app/public/assets文件夹中。
  • @MohammadWalid 这是一条旧评论,我知道,但我想我应该指出 @vikingcode 引用了 CSS 函数 url()。例如,他将这一点回显到 style="{{}}" 属性中。
  • 感谢您的回答,但如果我在 innerHTML 中需要这个?
【解决方案2】:

除了把你所有的资产放在public文件夹中,你还可以使用HTML::image()方法,并且只需要一个参数是图片的路径,相对于公共文件夹,以及:

{{ HTML::image('imgs/picture.jpg') }}

生成以下 HTML 代码:

<img src="http://localhost:8000/imgs/picture.jpg">

HTML::image()其他元素的链接方法:http://laravel-recipes.com/recipes/185/generating-an-html-image-element

【讨论】:

    【解决方案3】:

    你必须做两个步骤:

    1. 将所有文件(css、js、html 代码等)放入公共文件夹。
    2. 使用url({{ URL::asset('images/slides/2.jpg') }}),其中images/slides/2.jpg 是您的内容路径。

    同样可以调用js、css等

    【讨论】:

      猜你喜欢
      • 2021-09-05
      • 2017-09-15
      • 1970-01-01
      • 2016-05-20
      • 1970-01-01
      • 1970-01-01
      • 2018-12-13
      • 2013-11-11
      • 2015-12-18
      相关资源
      最近更新 更多