【问题标题】:How to access public folder in laravel 4?如何访问 laravel 4 中的公用文件夹?
【发布时间】:2015-01-18 12:49:15
【问题描述】:

我试图在我的 localhost(wamp) lavarel 项目中添加一些样式......

这是我位于公共文件夹中的 style.css 文件

p{font-weight:bold; size:20px; color:red;}

这是位于 app/view 文件夹中的 hello.blade.php 文件

<html>
  <head>
    <title>Test</title>
    <link rel="stylesheet" href="{{ URL::asset('style.css') }}">
  </head>
  <body>
    <p>Test</p>
  </body>
</html>

& 我的 routes.php 文件有以下代码:

Route::get('/',function(){
  return View::make('hello');
});

.htaccess 文件位于根目录是

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>

当我尝试通过 localhost 访问该 hello 页面时,测试内容在没有任何样式的情况下可见。谁能告诉我我怎么了??

【问题讨论】:

  • localhost/public/ 是否显示 hello 内容?
  • 不...我只能通过 localhost 访问 hello 页面
  • 查看hello html页面源代码,获取link标签内的css url,将链接复制到新的浏览器标签,看看是否可用。
  • css 的链接是 localhost/style.css,它不能直接访问并在 laravel 4 中给出“NotFoundHttpException”错误
  • 请向我们展示您在公共文件夹中的.htaccess 文件

标签: laravel laravel-4


【解决方案1】:

您的目录结构与here显示的默认目录结构不同

您必须将packages 文件夹和这些文件放入公共目录:

  • .htaccess
  • favicon.ico
  • index.php
  • robots.txt

然后为了让您的网站再次正常工作,请将您的 apache 服务器的文档根目录更改为 path/to/application/public

public 目录是有原因的。当您将它放在 Internet 上的服务器上时,您将获得额外的安全性,因为用户只能访问 public 目录中的内容。 (因为域指向此文件夹)如果您使用当前设置,每个人都可以看到您的整个应用程序。例如,可以输入example.com/app/config/database.php 并会看到您的数据库密码。

【讨论】:

  • 感谢 lukasgeiter ...它成功了..虽然我必须添加虚拟主机...但是您的建议非常有用...
  • 虚拟主机比更改文档根目录还要好!
【解决方案2】:

这样写:

<link rel="stylesheet" href="{{ asset('style.css') }}">

没有网址::

【讨论】:

  • 这没有任何区别。 asset() 只是一个调用 URL::asset 的辅助函数
猜你喜欢
  • 2017-06-18
  • 2020-12-24
  • 2017-03-23
  • 2013-06-03
  • 2021-03-21
  • 2016-06-07
  • 2021-05-30
  • 2016-01-24
  • 2017-06-27
相关资源
最近更新 更多