标签: static-files

在Django中调试时,不会加载静态文件

我正在创建一个Django项目.我刚刚尝试将该项目从调试中删除,DEBUG = False并且出于某种原因,我的所有静态文件都没有显示出来.它们的错误代码为500.我该如何解决这个问题?

一些settings.py:

DEBUG = True
TEMPLATE_DEBUG = DEBUG
...
TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader',
    'django.template.loaders.app_directories.Loader',
#     'django.template.loaders.eggs.Loader',
)

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
#    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
)
Run Code Online (Sandbox Code Playgroud)

django debugging static-files django-static

17
推荐指数
2
解决办法
1万
查看次数

在Heroku上部署Nodej无法提供位于子文件夹中的静态文件

我正在使用Heroku部署NodeJs应用程序.除了提供静态文件的小问题外,一切正常.

我有以下配置

app.use(express.static(__dirname + '/htdocs'));
Run Code Online (Sandbox Code Playgroud)

它工作正常,除非我尝试提供位于子文件夹中的静态文件.

www.example.com/bar.js //这将提供文件/htdocs/bar.js

www.example.com/foo/bar.js //找不到文件/htdocs/foo/bar.js

我忘了说在我的本地环境中一切正常,可能是heroku的东西,但我找不到原因.以前有人遇到过这个问题吗?解决方案?

谢谢!

heroku static-files node.js express

17
推荐指数
3
解决办法
9653
查看次数

Django runserver在开发中不提供静态文件

我正在使用Django runserver进行开发.当我部署到我的生产服务器时,我可以看到所有静态文件,但不能在本地计算机上看到.

我做了collectstatic,我已经设定了DEBUG = True.

我在网上发现了许多不同的意见,最突出的是STATICFILES_DIRS,但这对我不起作用.

如何设置它以便在我的开发环境中我可以看到静态文件,当我将文件上传到服务器时,我不需要对生产环境进行任何更改即可正常工作.

编辑 - 我的urls.py文件:

from django.conf.urls import patterns, include, url
from django.conf.urls.static import static
import newsflashes
import settings

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
    url(r'^admin/', include(admin.site.urls)),
    url(r'^', include('newsflashes.urls')),
) + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
Run Code Online (Sandbox Code Playgroud)

编辑 - 文件结构:

我有两个目录,静态和动态.内部静态是静态文件,动态目录中是django应用程序.

编辑设置:

我的相关设置如下

STATIC_ROOT = os.path.join(BASE_DIR, '..', 'static')
STATIC_URL = '/static/'
STATICFILES_DIRS = ()
Run Code Online (Sandbox Code Playgroud)

django static-files django-staticfiles

17
推荐指数
2
解决办法
2万
查看次数

ASP.NET MVC应用程序仅在Firefox中查看时才提供内部服务器错误

(我是.Net和微软世界的新手,来自Java和Tomcat背景,所以请记住这一点.)

我正在使用Visual Studio 2013,C#,.Net 4.5,MVC 5和EF 6开发我的第一个.Net应用程序.这是一个相当简单的基于Web的应用程序,使用Windows身份验证和Active Directory组授权公平地执行SQL Server数据库中表的基本CRUD操作.

我还没有部署应用程序.我还在开发它并在我的PC上运行(运行Windows 7).当我按下Ctrl-F5在Internet Explorer或Google Chrome中测试应用程序时,一切正常.

但是,如果我告诉Visual Studio在Firefox中访问它,它会显示没有任何CSS或JavaScript 的页面.我可以单击应用程序中的链接并导航到各个页面,这些页面都可以正常工作.它们只显示没有任何CSS或工作JavaScript.当我手动尝试查看其中一个CSS或JavaScript文件时,我收到内部服务器错误(HTTP错误500).检查日志文件会显示页面尝试加载的每个CSS和JavaScript文件的状态代码500.

我很神秘,因为它可以从Internet Explorer和Chrome中正常工作.如何使用不同的Web浏览器导致此内部服务器错误?

我发布了一些代码,但此时我不知道有什么用处.(我可以显示IIS Express正在记录哪些附加信息,如果有的话,但我不知道在哪里可以找到它,除了显示状态代码500的行.)

在开发的早期阶段,我意识到当我希望它被命名为"Version"(大写)时,我已经命名了一些数据库字段"version".我在该字符串的整个解决方案中进行了全局查找/替换,而不是对该字段进行重命名.可能有一些重要的事情被这个过程所困扰,但我已经对"版本"(以及"版本")进行了全局查找,并且没有找到任何值得注意的内容.

如果我绝对必须,我可能只是从头开始重新创建项目,并希望我不会将同样的问题(或新问题)复制/粘贴到新项目中,但我希望有人能来有一些比较容易尝试的东西.

UPDATE

这是Views/Shared/_Layout.cshtml的开头:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>@ViewBag.Title - Experiment 626</title>
    @Styles.Render("~/Content/css")
    @Scripts.Render("~/bundles/modernizr")
</head>
Run Code Online (Sandbox Code Playgroud)

这是App_Start\BundleConfig.cs:

using System.Web;
using System.Web.Optimization;

namespace Experiment626
{
    public class BundleConfig
    {
        // For more information on bundling, visit http://go.microsoft.com/fwlink/?LinkId=301862
        public static void RegisterBundles(BundleCollection bundles)
        {
            bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                        "~/Scripts/jquery-{version}.js"));

            bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                        "~/Scripts/jquery.validate.min.js",
                        "~/Scripts/jquery.validate.unobtrusive.min.js"));

            // Use the …
Run Code Online (Sandbox Code Playgroud)

.net iis asp.net-mvc firefox static-files

16
推荐指数
1
解决办法
8562
查看次数

是否可以将Image.getSize与静态图像文件一起使用?

我想使用Image.getSize(https://facebook.github.io/react-native/docs/image.html)来获取我的图像的大小,但第一个参数要求图像源在URI中,但我可以不要将URI与静态文件一起使用,我只能使用Require.

因此,是否可以在静态文件上使用Image.getSize或者我必须找到另一种方法?

image static-files react-native

16
推荐指数
3
解决办法
8413
查看次数

不允许使用/ Empty静态前缀不正确配置 - Django

我正在使用Django上传/显示图像.

该网站部署在Heroku上.

按照教程,我能够成功上传图像.

但是,图像未显示在模板中.

然后我了解到我的urls.py应该在最后有这一行:

+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Run Code Online (Sandbox Code Playgroud)

我将此添加到我的urls.py的末尾,但现在我收到此错误:

ImproperlyConfigured at / Empty static prefix not permitted
Run Code Online (Sandbox Code Playgroud)

我在settings.py中有MEDIA_URL和MEDIA_ROOT,两者都不是空的.

BASE_DIR = os.path.dirname(os.path.abspath(__file__))

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash.
# Examples: "http://example.com/media/", "http://media.example.com/"
MEDIA_URL = '/media/'
Run Code Online (Sandbox Code Playgroud)

为什么会发生此错误以及如何解决?

以下是我认为urls.py的相关部分:

from django.contrib import admin
from django.conf import settings
from django.conf.urls.static import static
import notifications
admin.autodiscover()

urlpatterns = patterns('',
    ....urls......

) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Run Code Online (Sandbox Code Playgroud)

python django heroku django-urls static-files

15
推荐指数
2
解决办法
2万
查看次数

如何使用Owin中间件拦截404

背景

首先让我解释一下背景.我正在研究一个项目,该项目试图将使用通过IIS上托管的OWIN配置的Web API的后端服务器结合起来,但未来可能还有其他OWIN支持的主机 - 使用AngularJS的前端.

AngularJS前端完全是静态内容.我完全避免服务器端技术,如MVC/Razor,WebForms,Bundles,任何与前端及其使用的资产有关的技术,而是推迟使用Node.js,Grunt/Gulp等最新最好的技术.处理CSS编译,捆绑,缩小等等.由于我不会进入这里的原因,我将前端和服务器项目保存在同一个项目中的不同位置(而不是直接将它们全部放在Host项目中(参见raw下图).

MyProject.sln
server
  MyProject.Host
     MyProject.Host.csproj
     Startup.cs
     (etc.)
frontend
  MyProjectApp
     app.js
     index.html
     MyProjectApp.njproj
     (etc.)
Run Code Online (Sandbox Code Playgroud)

因此就前端而言,我需要做的就是让我的主机服务我的静态内容.在Express.js中,这是微不足道的.使用OWIN,我能够使用Microsoft.Owin.StaticFiles中间件轻松地完成此任务,并且它运行良好(非常灵活).

这是我的OwinStartup配置:

string dir = AppDomain.CurrentDomain.RelativeSearchPath; // get executing path
string contentPath = Path.GetFullPath(Path.Combine(dir, @"../../../frontend/MyProjectApp")); // resolve nearby frontend project directory

app.UseFileServer(new FileServerOptions
{
    EnableDefaultFiles = true,
    FileSystem = new PhysicalFileSystem(contentPath),
    RequestPath = new PathString(string.Empty) // starts at the root of the host
});

// ensure the above occur before map handler to prevent native static content handler …
Run Code Online (Sandbox Code Playgroud)

c# asp.net static-files owin owin-middleware

14
推荐指数
3
解决办法
5631
查看次数

为django中的所有模板加载静态文件

django中有没有办法不需要{% load static %}每个模板的顶部?

此问题表明您可以将常用加载标记分解为设置,但在这种情况下不提供您需要的详细信息.

python django static-files django-staticfiles

13
推荐指数
2
解决办法
2377
查看次数

我可以在自定义(例如/ static /)路径上拥有koa-static服务资产吗?

https://github.com/koajs/static上的文档以及我尝试koa-static的个人经验让我相信你只能从应用程序的根URL提供文件.

例如:

app.use(serve('./some/dir/'));
Run Code Online (Sandbox Code Playgroud)

鉴于以上使用serve,访问文件的URL ./some/dir/something.txt将是localhost:3000/something.txt.似乎没有办法配置我的应用程序,以便提供相同的文件(以及同一目录中的所有其他文件)localhost:3000/static/something.txt.

我是Node和Koa的新手,所以我刚刚开始深入研究这个问题,我可能会错过一些非常明显的东西.

我尝试使用koa-route来实现这个目的:

app.use(route.get('/static/*'), serve(__dirname + '/some/dir'));
Run Code Online (Sandbox Code Playgroud)

但在要求时,/static/something.txt我遇到了以下情况:

  TypeError: Cannot read property 'apply' of undefined
      at Object.<anonymous> (/Users/me/example/src/node_modules/koa-route/index.js:34:18)
      at GeneratorFunctionPrototype.next (native)
      at onFulfilled (/Users/me/example/src/node_modules/koa/node_modules/co/index.js:64:19)
      at /Users/me/example/src/node_modules/koa/node_modules/co/index.js:53:5
      at Object.co (/Users/me/example/src/node_modules/koa/node_modules/co/index.js:49:10)
      at Object.toPromise (/Users/me/example/src/node_modules/koa/node_modules/co/index.js:117:63)
      at next (/Users/me/example/src/node_modules/koa/node_modules/co/index.js:98:29)
      at onFulfilled (/Users/me/example/src/node_modules/koa/node_modules/co/index.js:68:7)
      at /Users/me/example/src/node_modules/koa/node_modules/co/index.js:53:5
      at Object.co (/Users/me/example/src/node_modules/koa/node_modules/co/index.js:49:10)
Run Code Online (Sandbox Code Playgroud)

static-files node.js koa

12
推荐指数
2
解决办法
7215
查看次数

如何在 Nest.js 中提供静态 HTML 文件?

我想提供/dist位于 Nest 项目外部文件夹中的静态 HTML 文件。index.html已成功加载但无法加载任何 JS 文件(404错误)。

我有一个 Node/Express.js 项目,它使用

app.use('/', express.static('../client/dist'))
Run Code Online (Sandbox Code Playgroud)

它工作得很好。

然而,在 Nest 项目中,

app.setBaseViewsDir(join(__dirname, '../../client/dist'))
Run Code Online (Sandbox Code Playgroud)

不做的伎俩。

AppController我试过

import { Response } from 'express';

@Get()
  get(@Res() res: Response) {
    res.sendFile('index.html', {
      root: '../client/dist',
    });
  }
Run Code Online (Sandbox Code Playgroud)

但没有运气。

如前所述,index.html已成功加载。所以问题不是走错路。问题也不是 src-paths 错误,index.html因为在 Express 项目中使用了完全相同的文件。

/dist
  |-index.html
  |-main.js
  |-etc.
Run Code Online (Sandbox Code Playgroud)

在 index.html 中:

<script type="text/javascript" src="main.js"></script>
Run Code Online (Sandbox Code Playgroud)

当我将 dist 文件夹放入 Nest 项目(并调整路径)时,它也不起作用。

我找到了解决方案:

我现在使用 express 模块:

import * as express from 'express'; …
Run Code Online (Sandbox Code Playgroud)

javascript static-files node.js express nestjs

12
推荐指数
3
解决办法
2万
查看次数